mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-05 06:21:26 +12: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);
|
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)
|
if (!m_current_cb)
|
||||||
{
|
{
|
||||||
|
@ -143,7 +143,7 @@ namespace vk
|
||||||
}
|
}
|
||||||
|
|
||||||
m_current_cb->end();
|
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_last_used_cb = m_current_cb;
|
||||||
m_current_cb = nullptr;
|
m_current_cb = nullptr;
|
||||||
|
|
|
@ -48,7 +48,7 @@ namespace vk
|
||||||
command_buffer* get_current();
|
command_buffer* get_current();
|
||||||
event* get_primary_sync_label();
|
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();
|
void kill();
|
||||||
|
|
||||||
// Thread entry-point
|
// Thread entry-point
|
||||||
|
|
|
@ -263,7 +263,7 @@ namespace vk
|
||||||
if (vendor == driver_vendor::NVIDIA)
|
if (vendor == driver_vendor::NVIDIA)
|
||||||
{
|
{
|
||||||
allow_host_buffers = (chip != chip_class::NV_mobile_kepler) ?
|
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;
|
false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -1939,7 +1939,7 @@ void VKGSRender::close_and_submit_command_buffer(vk::fence* pFence, VkSemaphore
|
||||||
const VkBool32 force_flush = !sync_success;
|
const VkBool32 force_flush = !sync_success;
|
||||||
|
|
||||||
// Flush any asynchronously scheduled jobs
|
// 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))
|
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(),
|
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();
|
vk::leave_uninterruptible();
|
||||||
|
|
||||||
|
|
|
@ -203,7 +203,7 @@ namespace vk
|
||||||
u32 dst_queue = new_queue_family;
|
u32 dst_queue = new_queue_family;
|
||||||
|
|
||||||
if (current_queue_family == VK_QUEUE_FAMILY_IGNORED)
|
if (current_queue_family == VK_QUEUE_FAMILY_IGNORED)
|
||||||
{
|
{
|
||||||
// Implicit acquisition
|
// Implicit acquisition
|
||||||
dst_queue = VK_QUEUE_FAMILY_IGNORED;
|
dst_queue = VK_QUEUE_FAMILY_IGNORED;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue