fix texture set data sync

submit_rewrite
cosmonaut 2020-12-30 22:34:54 -08:00 committed by thatcosmonaut
parent bc3c52162b
commit da52bd68f0
1 changed files with 27 additions and 19 deletions

View File

@ -1347,6 +1347,7 @@ typedef struct VulkanRenderer
static void VULKAN_INTERNAL_BeginCommandBuffer(VulkanRenderer *renderer); static void VULKAN_INTERNAL_BeginCommandBuffer(VulkanRenderer *renderer);
static void VULKAN_Submit(REFRESH_Renderer *driverData); static void VULKAN_Submit(REFRESH_Renderer *driverData);
static void VULKAN_SubmitAndSync(REFRESH_Renderer *driverData);
/* Macros */ /* Macros */
@ -5769,8 +5770,8 @@ static void VULKAN_SetTextureData2D(
); );
} }
/* Sync point */ /* Hard sync point */
VULKAN_Submit(driverData); VULKAN_SubmitAndSync(driverData);
} }
static void VULKAN_SetTextureData3D( static void VULKAN_SetTextureData3D(
@ -5868,8 +5869,8 @@ static void VULKAN_SetTextureData3D(
); );
} }
/* Sync point */ /* Hard sync point */
VULKAN_Submit(driverData); VULKAN_SubmitAndSync(driverData);
} }
static void VULKAN_SetTextureDataCube( static void VULKAN_SetTextureDataCube(
@ -5966,8 +5967,8 @@ static void VULKAN_SetTextureDataCube(
); );
} }
/* Sync point */ /* Hard sync point */
VULKAN_Submit(driverData); VULKAN_SubmitAndSync(driverData);
} }
static void VULKAN_SetTextureDataYUV( static void VULKAN_SetTextureDataYUV(
@ -6153,8 +6154,8 @@ static void VULKAN_SetTextureDataYUV(
); );
} }
/* Sync point */ /* Hard sync point */
VULKAN_Submit(driverData); VULKAN_SubmitAndSync(driverData);
} }
static void VULKAN_SetBufferData( static void VULKAN_SetBufferData(
@ -6758,16 +6759,8 @@ static void VULKAN_INTERNAL_GetTextureData(
&vulkanTexture->resourceAccessType &vulkanTexture->resourceAccessType
); );
/* hard sync point */ /* Hard sync point */
VULKAN_Submit(driverData); VULKAN_SubmitAndSync(driverData);
renderer->vkWaitForFences(
renderer->logicalDevice,
1,
&renderer->inFlightFence,
VK_TRUE,
UINT64_MAX
);
/* Read from staging buffer */ /* Read from staging buffer */
@ -7624,6 +7617,21 @@ static void VULKAN_INTERNAL_ResetDescriptorSetData(VulkanRenderer *renderer)
} }
} }
static void VULKAN_SubmitAndSync(REFRESH_Renderer *driverData)
{
VulkanRenderer* renderer = (VulkanRenderer*)driverData;
VULKAN_Submit(driverData);
renderer->vkWaitForFences(
renderer->logicalDevice,
1,
&renderer->inFlightFence,
VK_TRUE,
UINT64_MAX
);
}
static void VULKAN_Submit( static void VULKAN_Submit(
REFRESH_Renderer *driverData REFRESH_Renderer *driverData
) { ) {