MythTV  master
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Private Attributes | List of all members
MythDRMVRR Class Reference

A wrapper around FreeSync/Adaptive-Sync support. More...

#include <libmythui/platforms/drm/mythdrmvrr.h>

Inheritance diagram for MythDRMVRR:
[legend]
Collaboration diagram for MythDRMVRR:
[legend]

Public Member Functions

 ~MythDRMVRR () override
 
void SetEnabled (bool Enable=true) override
 
DRMProp GetVRRProperty ()
 
- Public Member Functions inherited from MythVRR
virtual ~MythVRR ()=default
 
QString TypeToString () const
 
bool Enabled () const
 
MythVRRRange GetRange () const
 
QString RangeDescription () const
 
bool IsControllable () const
 

Static Public Member Functions

static void ForceFreeSync (const MythDRMPtr &Device, bool Enable)
 Force FreeSync on or off before the main app is started. More...
 
static MythVRRPtr CreateFreeSync (const MythDRMPtr &Device, MythVRRRange Range)
 
- Static Public Member Functions inherited from MythVRR
static MythVRRPtr Create (class MythDisplay *MDisplay)
 Create a concrete implementation of MythVRR suitable for the given Display. More...
 

Static Public Attributes

static bool s_freeSyncResetOnExit = false
 
static bool s_freeSyncDefaultValue = false
 

Protected Member Functions

 MythDRMVRR (MythDRMPtr Device, DRMProp VRRProp, bool Controllable, bool Enabled, MythVRRRange Range)
 
- Protected Member Functions inherited from MythVRR
 MythVRR (bool Controllable, VRRType Type, bool Enabled, MythVRRRange Range)
 

Private Attributes

MythDRMPtr m_device { nullptr }
 
DRMProp m_vrrProp { nullptr }
 

Additional Inherited Members

- Public Types inherited from MythVRR
enum  VRRType : std::uint8_t { Unknown = 0, FreeSync, GSync, GSyncCompat }
 
- Protected Attributes inherited from MythVRR
bool m_controllable { false }
 
VRRType m_type { Unknown }
 
bool m_enabled { false }
 
MythVRRRange m_range { 0, 0, false }
 

Detailed Description

A wrapper around FreeSync/Adaptive-Sync support.

FreeSync support on linux is currently limited to AMD when using a Display Port connection. FreeSync must be either enabled before starting MythTV (e.g xorg.conf) or the command line option -/–vrr can be used to try and force it on or off at startup. Note however that if running under X11 or Wayland, MythTV will not have the correct permissions to set FreeSync; it will only work via DRM (and typically using the eglfs QPA plugin) - although its current state can still be detected (and hence unnecessary mode switches avoided etc).

See also
MythGSync
MythVRR

Definition at line 8 of file mythdrmvrr.h.

Constructor & Destructor Documentation

◆ ~MythDRMVRR()

MythDRMVRR::~MythDRMVRR ( )
override

Definition at line 106 of file mythdrmvrr.cpp.

◆ MythDRMVRR()

MythDRMVRR::MythDRMVRR ( MythDRMPtr  Device,
DRMProp  VRRProp,
bool  Controllable,
bool  Enabled,
MythVRRRange  Range 
)
protected

Definition at line 98 of file mythdrmvrr.cpp.

Referenced by CreateFreeSync().

Member Function Documentation

◆ ForceFreeSync()

void MythDRMVRR::ForceFreeSync ( const MythDRMPtr Device,
bool  Enable 
)
static

Force FreeSync on or off before the main app is started.

Definition at line 9 of file mythdrmvrr.cpp.

◆ CreateFreeSync()

MythVRRPtr MythDRMVRR::CreateFreeSync ( const MythDRMPtr Device,
MythVRRRange  Range 
)
static

Definition at line 56 of file mythdrmvrr.cpp.

Referenced by MythVRR::Create(), and ForceFreeSync().

◆ SetEnabled()

void MythDRMVRR::SetEnabled ( bool  Enable = true)
overridevirtual

Implements MythVRR.

Definition at line 119 of file mythdrmvrr.cpp.

Referenced by ~MythDRMVRR().

◆ GetVRRProperty()

DRMProp MythDRMVRR::GetVRRProperty ( )

Definition at line 131 of file mythdrmvrr.cpp.

Member Data Documentation

◆ s_freeSyncResetOnExit

bool MythDRMVRR::s_freeSyncResetOnExit = false
inlinestatic

Definition at line 11 of file mythdrmvrr.h.

Referenced by MythDisplay::ConfigureQtGUI(), ForceFreeSync(), and ~MythDRMVRR().

◆ s_freeSyncDefaultValue

bool MythDRMVRR::s_freeSyncDefaultValue = false
inlinestatic

Definition at line 12 of file mythdrmvrr.h.

Referenced by ForceFreeSync(), and ~MythDRMVRR().

◆ m_device

MythDRMPtr MythDRMVRR::m_device { nullptr }
private

Definition at line 26 of file mythdrmvrr.h.

Referenced by SetEnabled().

◆ m_vrrProp

DRMProp MythDRMVRR::m_vrrProp { nullptr }
private

Definition at line 27 of file mythdrmvrr.h.

Referenced by GetVRRProperty(), and SetEnabled().


The documentation for this class was generated from the following files: