mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-22 12:35:21 +00:00
vk: Flip on async texture uploads
This commit is contained in:
parent
589ac1c5d4
commit
b4e821c28d
6 changed files with 7 additions and 7 deletions
|
@ -129,7 +129,7 @@ namespace vk
|
|||
return std::exchange(m_sync_label, nullptr);
|
||||
}
|
||||
|
||||
void AsyncTaskScheduler::flush(VkSemaphore wait_semaphore, VkPipelineStageFlags wait_dst_stage_mask)
|
||||
void AsyncTaskScheduler::flush(VkBool32 force_flush, VkSemaphore wait_semaphore, VkPipelineStageFlags wait_dst_stage_mask)
|
||||
{
|
||||
if (!m_current_cb)
|
||||
{
|
||||
|
@ -143,7 +143,7 @@ namespace vk
|
|||
}
|
||||
|
||||
m_current_cb->end();
|
||||
m_current_cb->submit(get_current_renderer()->get_transfer_queue(), wait_semaphore, VK_NULL_HANDLE, nullptr, wait_dst_stage_mask, VK_FALSE);
|
||||
m_current_cb->submit(get_current_renderer()->get_transfer_queue(), wait_semaphore, VK_NULL_HANDLE, nullptr, wait_dst_stage_mask, force_flush);
|
||||
|
||||
m_last_used_cb = m_current_cb;
|
||||
m_current_cb = nullptr;
|
||||
|
|
|
@ -48,7 +48,7 @@ namespace vk
|
|||
command_buffer* get_current();
|
||||
event* get_primary_sync_label();
|
||||
|
||||
void flush(VkSemaphore wait_semaphore = VK_NULL_HANDLE, VkPipelineStageFlags wait_dst_stage_mask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT);
|
||||
void flush(VkBool32 force_flush, VkSemaphore wait_semaphore = VK_NULL_HANDLE, VkPipelineStageFlags wait_dst_stage_mask = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT);
|
||||
void kill();
|
||||
|
||||
// Thread entry-point
|
||||
|
|
|
@ -263,7 +263,7 @@ namespace vk
|
|||
if (vendor == driver_vendor::NVIDIA)
|
||||
{
|
||||
allow_host_buffers = (chip != chip_class::NV_mobile_kepler) ?
|
||||
rsx::get_location(base_address) == CELL_GCM_LOCATION_LOCAL :
|
||||
test_host_pointer(base_address, expected_length) :
|
||||
false;
|
||||
}
|
||||
else
|
||||
|
|
|
@ -1939,7 +1939,7 @@ void VKGSRender::close_and_submit_command_buffer(vk::fence* pFence, VkSemaphore
|
|||
const VkBool32 force_flush = !sync_success;
|
||||
|
||||
// Flush any asynchronously scheduled jobs
|
||||
g_fxo->get<vk::async_scheduler_thread>()->flush();
|
||||
g_fxo->get<vk::async_scheduler_thread>()->flush(force_flush);
|
||||
|
||||
if (vk::test_status_interrupt(vk::heap_dirty))
|
||||
{
|
||||
|
|
|
@ -936,7 +936,7 @@ namespace vk
|
|||
}
|
||||
|
||||
vk::upload_image(cmd, image, subresource_layout, gcm_format, input_swizzled, mipmaps, image->aspect(),
|
||||
*m_texture_upload_heap, upload_heap_align_default, initialize_image_layout | upload_contents_inline);
|
||||
*m_texture_upload_heap, upload_heap_align_default, initialize_image_layout | upload_contents_async);
|
||||
|
||||
vk::leave_uninterruptible();
|
||||
|
||||
|
|
|
@ -203,7 +203,7 @@ namespace vk
|
|||
u32 dst_queue = new_queue_family;
|
||||
|
||||
if (current_queue_family == VK_QUEUE_FAMILY_IGNORED)
|
||||
{
|
||||
{
|
||||
// Implicit acquisition
|
||||
dst_queue = VK_QUEUE_FAMILY_IGNORED;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue