From 6b7e7222da60937d373cca8777ba55dbf5e7bd86 Mon Sep 17 00:00:00 2001 From: qiaojbao Date: Fri, 16 Aug 2024 16:02:07 +0800 Subject: [PATCH] Improve the refresh rate precision. (AMDVLK #268) --- inc/core/palScreen.h | 2 +- src/core/os/amdgpu/amdgpuDevice.cpp | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/inc/core/palScreen.h b/inc/core/palScreen.h index f3d48ad2..849bf123 100644 --- a/inc/core/palScreen.h +++ b/inc/core/palScreen.h @@ -208,7 +208,7 @@ struct ScreenMode Extent2d extent; ///< Width and height of the resolution. SwizzledFormat format; ///< Pixel format and channel swizzle of the display mode. - uint32 refreshRate; ///< Refresh rate in Hz. + Rational refreshRate; ///< Refresh rate in Hz. }; /// 3-component floating point vector describing the red, green, and blue channels of a color. diff --git a/src/core/os/amdgpu/amdgpuDevice.cpp b/src/core/os/amdgpu/amdgpuDevice.cpp index 6e1236f7..8ae36e69 100644 --- a/src/core/os/amdgpu/amdgpuDevice.cpp +++ b/src/core/os/amdgpu/amdgpuDevice.cpp @@ -5708,7 +5708,8 @@ Result Device::QueryScreenModesForConnector( pScreenModeList[j].extent.width = pMode->hdisplay; pScreenModeList[j].extent.height = pMode->vdisplay; - pScreenModeList[j].refreshRate = pMode->vrefresh; + pScreenModeList[j].refreshRate.numerator = pMode->clock * 1000; + pScreenModeList[j].refreshRate.denominator = pMode->htotal * pMode->vtotal; pScreenModeList[j].flags.u32All = 0; }