1
0
mirror of https://github.com/RPCS3/rpcs3.git synced 2024-11-26 04:32:35 +01:00

vk: Disable conditional rendering on MacOS

This commit is contained in:
kd-11 2023-06-06 17:20:53 +03:00 committed by kd-11
parent 86c7b31b6d
commit 6f834e99d2
2 changed files with 5 additions and 3 deletions

View File

@ -749,10 +749,10 @@ VKGSRender::VKGSRender(utils::serial* ar) noexcept : GSRender(ar)
// Confirmed in BLES01916 (The Evil Within) which uses RGB565 for some virtual texturing data.
backend_config.supports_hw_renormalization = (vk::get_driver_vendor() == vk::driver_vendor::NVIDIA);
#ifndef __APPLE__
// Conditional rendering support
backend_config.supports_hw_conditional_render = true;
#endif
// Do not use on MVK due to a speedhack we rely on (streaming results without stopping the current renderpass)
// If we break the renderpasses, MVK loses around 75% of its performance in troublesome spots compared to just doing a CPU sync
backend_config.supports_hw_conditional_render = (vk::get_driver_vendor() != vk::driver_vendor::MVK);
// Passthrough DMA
backend_config.supports_passthrough_dma = m_device->get_external_memory_host_support();

View File

@ -170,6 +170,8 @@ namespace vk
void query_pool_manager::get_query_result_indirect(vk::command_buffer& cmd, u32 index, VkBuffer dst, VkDeviceSize dst_offset)
{
// We're technically supposed to stop any active renderpasses before streaming the results out, but that doesn't matter on IMR hw
// On TBDR setups like the apple M series, the stop is required (results are all 0 if you don't flush the RP), but this introduces a very heavy performance loss.
vkCmdCopyQueryPoolResults(cmd, *query_slot_status[index].pool, index, 1, dst, dst_offset, 4, VK_QUERY_RESULT_WAIT_BIT);
}