Update rsx_methods.cpp

This commit is contained in:
Elad Ashkenazi 2022-08-02 19:23:10 +03:00 committed by kd-11
parent 99730ac4f9
commit cd2adbad9a

View file

@ -34,16 +34,16 @@ namespace rsx
rsx_log.trace("RSX method 0x%x (arg=0x%x)", reg << 2, arg); rsx_log.trace("RSX method 0x%x (arg=0x%x)", reg << 2, arg);
} }
template <bool FlushDMA, bool FlushPipe, bool ForceUpdate = false> template <bool FlushDMA, bool FlushPipe>
void write_gcm_label(thread* rsx, u32 address, u32 data) void write_gcm_label(thread* rsx, u32 address, u32 data)
{ {
const bool is_flip_sema = (address == (rsx->label_addr + 0x10) || address == (rsx->device_addr + 0x30)); const bool is_flip_sema = (address == (rsx->label_addr + 0x10) || address == (rsx->device_addr + 0x30));
if (!is_flip_sema) if (!is_flip_sema)
{ {
// First, queue the GPU work. If it flushes the queue for us, the following routines will be faster. // First, queue the GPU work. If it flushes the queue for us, the following routines will be faster.
const bool handled = !ForceUpdate && rsx->get_backend_config().supports_host_gpu_labels && rsx->release_GCM_label(address, data); const bool handled = rsx->get_backend_config().supports_host_gpu_labels && rsx->release_GCM_label(address, data);
if (!ForceUpdate && vm::_ref<RsxSemaphore>(address).val == data) if (vm::_ref<RsxSemaphore>(address).val == data)
{ {
// It's a no-op to write the same value (although there is a delay in real-hw so it's more accurate to allow GPU label in this case) // It's a no-op to write the same value (although there is a delay in real-hw so it's more accurate to allow GPU label in this case)
return; return;
@ -190,7 +190,7 @@ namespace rsx
arg = 1; arg = 1;
} }
write_gcm_label<false, true, true>(rsx, addr, arg); write_gcm_label<false, true>(rsx, addr, arg);
} }
} }