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:
parent
86c7b31b6d
commit
6f834e99d2
@ -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();
|
||||
|
@ -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);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user