diff --git a/xbmc/rendering/dx/RenderSystemDX.cpp b/xbmc/rendering/dx/RenderSystemDX.cpp index 1666c8774c7a7..3cfa1cef14910 100644 --- a/xbmc/rendering/dx/RenderSystemDX.cpp +++ b/xbmc/rendering/dx/RenderSystemDX.cpp @@ -220,8 +220,8 @@ void CRenderSystemDX::GetClosestDisplayModeToCurrent(IDXGIOutput* output, DXGI_M DXGI_MODE_DESC current; current.Width = devMode.dmPelsWidth; current.Height = devMode.dmPelsHeight; - current.RefreshRate.Numerator = useDefaultRefreshRate ? 0 : devMode.dmDisplayFrequency; - current.RefreshRate.Denominator = useDefaultRefreshRate ? 0 : 1; + current.RefreshRate.Numerator = useDefaultRefreshRate ? 0 : MathUtils::round_int(devMode.dmDisplayFrequency * 1000.0); + current.RefreshRate.Denominator = useDefaultRefreshRate ? 0 : 1000; current.Format = DXGI_FORMAT_B8G8R8A8_UNORM; current.ScanlineOrdering = m_interlaced ? DXGI_MODE_SCANLINE_ORDER_UPPER_FIELD_FIRST : DXGI_MODE_SCANLINE_ORDER_PROGRESSIVE; current.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; @@ -323,8 +323,8 @@ void CRenderSystemDX::SetFullScreenInternal() toMatchMode.Width = m_nBackBufferWidth; toMatchMode.Height = m_nBackBufferHeight; bool useDefaultRefreshRate = 0 == m_refreshRate; - toMatchMode.RefreshRate.Numerator = useDefaultRefreshRate ? 0 : m_refreshRate; - toMatchMode.RefreshRate.Denominator = useDefaultRefreshRate ? 0 : 1; + toMatchMode.RefreshRate.Numerator = useDefaultRefreshRate ? 0 : MathUtils::round_int(m_refreshRate * 1000.0); + toMatchMode.RefreshRate.Denominator = useDefaultRefreshRate ? 0 : 1000; toMatchMode.Format = scDesc.BufferDesc.Format; toMatchMode.Scaling = scDesc.BufferDesc.Scaling; toMatchMode.ScanlineOrdering = scDesc.BufferDesc.ScanlineOrdering;