Fix vulkan compilation warnings

This commit is contained in:
kd-11 2022-03-22 21:37:49 +03:00 committed by kd-11
parent 1ab5b481ff
commit af0e1f609e
7 changed files with 16 additions and 8 deletions

View file

@ -20,7 +20,7 @@ namespace vk
return;
}
init_config_options();
init_config_options(mode);
}
AsyncTaskScheduler::~AsyncTaskScheduler()
@ -32,7 +32,7 @@ namespace vk
}
}
void AsyncTaskScheduler::init_config_options()
void AsyncTaskScheduler::init_config_options(vk_gpu_scheduler_mode mode)
{
std::lock_guard lock(m_config_mutex);
if (std::exchange(m_options_initialized, true))
@ -41,13 +41,13 @@ namespace vk
return;
}
m_use_host_scheduler = g_cfg.video.vk.asynchronous_scheduler == vk_gpu_scheduler_mode::safe || g_cfg.video.strict_rendering_mode;
m_use_host_scheduler = (mode == vk_gpu_scheduler_mode::safe) || g_cfg.video.strict_rendering_mode;
rsx_log.notice("Asynchronous task scheduler is active running in %s mode", m_use_host_scheduler? "'Safe'" : "'Fast'");
}
void AsyncTaskScheduler::delayed_init()
{
init_config_options();
ensure(m_options_initialized);
auto pdev = get_current_renderer();
m_command_pool.create(*const_cast<render_device*>(pdev), pdev->get_transfer_queue_family());

View file

@ -39,7 +39,7 @@ namespace vk
shared_mutex m_submit_mutex;
void init_config_options();
void init_config_options(vk_gpu_scheduler_mode mode);
void delayed_init();
void insert_sync_event();

View file

@ -1544,7 +1544,7 @@ bool VKGSRender::release_GCM_label(u32 address, u32 args)
return false;
}
m_host_data_ptr->last_label_release_event = ++m_host_data_ptr->event_counter;
m_host_data_ptr->last_label_release_event = m_host_data_ptr->inc_counter();
if (m_host_data_ptr->texture_load_request_event > m_host_data_ptr->last_label_submit_event)
{

View file

@ -89,7 +89,7 @@ namespace vk
using download_buffer_object = void*;
using barrier_descriptor_t = rsx::deferred_clipped_region<vk::render_target*>;
static std::pair<VkImageUsageFlags, VkImageCreateFlags> get_attachment_create_flags(VkFormat format, u8 samples)
static std::pair<VkImageUsageFlags, VkImageCreateFlags> get_attachment_create_flags(VkFormat format, u8 /*samples*/)
{
if (g_cfg.video.strict_rendering_mode)
{

View file

@ -1154,7 +1154,7 @@ namespace vk
// Queue a sync update on the CB doing the load
auto [host_data, host_buffer] = static_cast<VKGSRender*>(rsxthr)->map_host_object_data();
ensure(host_data);
const auto event_id = ++host_data->event_counter;
const auto event_id = host_data->inc_counter();
host_data->texture_load_request_event = event_id;
vkCmdUpdateBuffer(cmd2, host_buffer, ::offset32(&vk::host_data_t::texture_load_complete_event), sizeof(u64), &event_id);
}

View file

@ -181,6 +181,7 @@ namespace vk
switch (status)
{
case VK_NOT_READY:
utils::pause();
continue;
default:
die_with_error(status);

View file

@ -26,6 +26,13 @@ namespace vk
u64 last_label_submit_event = 0;
u64 commands_complete_event = 0;
u64 last_label_request_timestamp = 0;
inline u64 inc_counter() volatile
{
// Workaround for volatile increment warning. GPU can see this value directly, but currently we do not modify it on the device.
event_counter = event_counter + 1;
return event_counter;
}
};
struct fence