@@ -3485,9 +3485,8 @@ void CMaterialSystem::BeginFrame( float frameTime )
3485
3485
VPROF_BUDGET ( " CMaterialSystem::BeginFrame" , VPROF_BUDGETGROUP_SWAP_BUFFERS );
3486
3486
tmZoneFiltered ( TELEMETRY_LEVEL0, 50 , TMZF_NONE, " %s" , __FUNCTION__ );
3487
3487
3488
- IMatRenderContextInternal *pRenderContext = GetRenderContextInternal ();
3489
-
3490
- if (g_config.ForceHWSync () && m_ThreadMode != MATERIAL_QUEUED_THREADED)
3488
+ IMatRenderContextInternal* pRenderContext = GetRenderContextInternal ();
3489
+ if (g_config.ForceHWSync () && (IsPC () || m_ThreadMode != MATERIAL_QUEUED_THREADED))
3491
3490
{
3492
3491
tmZoneFiltered (TELEMETRY_LEVEL0, 50 , TMZF_NONE, " ForceHardwareSync" );
3493
3492
pRenderContext->ForceHardwareSync ();
@@ -3703,19 +3702,15 @@ void CMaterialSystem::EndFrame( void )
3703
3702
3704
3703
if ( m_pActiveAsyncJob )
3705
3704
{
3706
- // Sync with GPU if we had a job for it, even if it finished early on CPU!
3707
- // We want to sync at the end of the frame, because hardware sync
3708
- // lags behind by one frame already, and r_reduce_frame_latency wouldn't make
3709
- // much of a difference if it happened later
3710
- // Do this before the wait for finish so that we can hide the hardware sync time.
3711
- if (g_config.ForceHWSync ())
3712
- {
3713
- g_pShaderAPI->ForceHardwareSync ();
3714
- }
3715
3705
if ( !m_pActiveAsyncJob->IsFinished () )
3716
3706
{
3717
3707
m_pActiveAsyncJob->WaitForFinish ();
3718
3708
}
3709
+ // Sync with GPU if we had a job for it, even if it finished early on CPU!
3710
+ if (!IsPC () && g_config.ForceHWSync ())
3711
+ {
3712
+ g_pShaderAPI->ForceHardwareSync ();
3713
+ }
3719
3714
}
3720
3715
SafeRelease ( m_pActiveAsyncJob );
3721
3716
0 commit comments