You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Display controllers process drawing primitives with a separate process. The amount of time made available to the drawing process is limited to try to ensure that drawing does not conflict with scan-out, and to minimise flicker.
The amount of time made available to the drawing process is calculated inside vdp-gl - as part of that it checks to see whether a "process primitives on blank" flag has been set (where "blank" is the vertical sync time between frame scan-outs). Our current setup does not change this flag, so it remains false, which means that the drawing process gets slightly more time to operate, but with the risk that it will overlap scan-out and cause flicker.
Calling setProcessPrimitivesOnBlank(true) before the screen resolution it set would ensure that the available processing time is more tightly restricted, and thus less flicker.
We could add a feature flag to ensure that setProcessPrimitivesOnBlank(true) is called on mode change, thus providing an option to reduce drawing flicker.
The text was updated successfully, but these errors were encountered:
NB this option only currently exists in vdp-gl for paletted controllers. the calculation for the available time is made inside a calculateAvailableCyclesForDrawings function which is called by setResolution
for the plain VGAController an equivalent calculation for calculating the available time is calculated in setResolution as m_maxVSyncISRTime. the calculation performed is very similar to the false variant in paletted controllers, but with a few subtle differences - this may indicate a slight mistake in one of these calculations
Display controllers process drawing primitives with a separate process. The amount of time made available to the drawing process is limited to try to ensure that drawing does not conflict with scan-out, and to minimise flicker.
The amount of time made available to the drawing process is calculated inside vdp-gl - as part of that it checks to see whether a "process primitives on blank" flag has been set (where "blank" is the vertical sync time between frame scan-outs). Our current setup does not change this flag, so it remains false, which means that the drawing process gets slightly more time to operate, but with the risk that it will overlap scan-out and cause flicker.
Calling
setProcessPrimitivesOnBlank(true)
before the screen resolution it set would ensure that the available processing time is more tightly restricted, and thus less flicker.We could add a feature flag to ensure that
setProcessPrimitivesOnBlank(true)
is called on mode change, thus providing an option to reduce drawing flicker.The text was updated successfully, but these errors were encountered: