forked from MoonsideGames/Refresh
Submission rewrite (#13)
Rework submission flow to reduce waiting and improve the resource cleanup process. This patch also gets rid of descriptor set caching. Co-authored-by: cosmonaut <evan@moonside.games> Co-committed-by: cosmonaut <evan@moonside.games>updatetemplate
parent
1d72fdb995
commit
0319c26f6a
|
@ -1038,6 +1038,7 @@ REFRESHAPI void Refresh_GetBufferData(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyTexture(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Texture *texture
|
||||
);
|
||||
|
||||
|
@ -1050,6 +1051,7 @@ REFRESHAPI void Refresh_QueueDestroyTexture(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroySampler(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Sampler *sampler
|
||||
);
|
||||
|
||||
|
@ -1062,6 +1064,7 @@ REFRESHAPI void Refresh_QueueDestroySampler(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyBuffer(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Buffer *buffer
|
||||
);
|
||||
|
||||
|
@ -1074,6 +1077,7 @@ REFRESHAPI void Refresh_QueueDestroyBuffer(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyRenderTarget(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_RenderTarget *renderTarget
|
||||
);
|
||||
|
||||
|
@ -1086,6 +1090,7 @@ REFRESHAPI void Refresh_QueueDestroyRenderTarget(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyFramebuffer(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Framebuffer *frameBuffer
|
||||
);
|
||||
|
||||
|
@ -1098,6 +1103,7 @@ REFRESHAPI void Refresh_QueueDestroyFramebuffer(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyShaderModule(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_ShaderModule *shaderModule
|
||||
);
|
||||
|
||||
|
@ -1110,6 +1116,7 @@ REFRESHAPI void Refresh_QueueDestroyShaderModule(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyRenderPass(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_RenderPass *renderPass
|
||||
);
|
||||
|
||||
|
@ -1122,6 +1129,7 @@ REFRESHAPI void Refresh_QueueDestroyRenderPass(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyComputePipeline(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_ComputePipeline *computePipeline
|
||||
);
|
||||
|
||||
|
@ -1134,6 +1142,7 @@ REFRESHAPI void Refresh_QueueDestroyComputePipeline(
|
|||
*/
|
||||
REFRESHAPI void Refresh_QueueDestroyGraphicsPipeline(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_GraphicsPipeline *graphicsPipeline
|
||||
);
|
||||
|
||||
|
|
|
@ -542,99 +542,117 @@ void Refresh_GetBufferData(
|
|||
|
||||
void Refresh_QueueDestroyTexture(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Texture *texture
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyTexture(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
texture
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroySampler(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Sampler *sampler
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroySampler(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
sampler
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroyBuffer(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Buffer *buffer
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyBuffer(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
buffer
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroyRenderTarget(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_RenderTarget *renderTarget
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyRenderTarget(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
renderTarget
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroyFramebuffer(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Framebuffer *frameBuffer
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyFramebuffer(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
frameBuffer
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroyShaderModule(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_ShaderModule *shaderModule
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyShaderModule(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
shaderModule
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroyRenderPass(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_RenderPass *renderPass
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyRenderPass(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
renderPass
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroyComputePipeline(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_ComputePipeline *computePipeline
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyComputePipeline(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
computePipeline
|
||||
);
|
||||
}
|
||||
|
||||
void Refresh_QueueDestroyGraphicsPipeline(
|
||||
Refresh_Device *device,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_GraphicsPipeline *graphicsPipeline
|
||||
) {
|
||||
NULL_RETURN(device);
|
||||
device->QueueDestroyGraphicsPipeline(
|
||||
device->driverData,
|
||||
commandBuffer,
|
||||
graphicsPipeline
|
||||
);
|
||||
}
|
||||
|
|
|
@ -361,46 +361,55 @@ struct Refresh_Device
|
|||
|
||||
void(*QueueDestroyTexture)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Texture *texture
|
||||
);
|
||||
|
||||
void(*QueueDestroySampler)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Sampler *sampler
|
||||
);
|
||||
|
||||
void(*QueueDestroyBuffer)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Buffer *buffer
|
||||
);
|
||||
|
||||
void(*QueueDestroyRenderTarget)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_RenderTarget *renderTarget
|
||||
);
|
||||
|
||||
void(*QueueDestroyFramebuffer)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_Framebuffer *frameBuffer
|
||||
);
|
||||
|
||||
void(*QueueDestroyShaderModule)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_ShaderModule *shaderModule
|
||||
);
|
||||
|
||||
void(*QueueDestroyRenderPass)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_RenderPass *renderPass
|
||||
);
|
||||
|
||||
void(*QueueDestroyComputePipeline)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_ComputePipeline *computePipeline
|
||||
);
|
||||
|
||||
void(*QueueDestroyGraphicsPipeline)(
|
||||
Refresh_Renderer *driverData,
|
||||
Refresh_CommandBuffer *commandBuffer,
|
||||
Refresh_GraphicsPipeline *graphicsPipeline
|
||||
);
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue