-
-
Notifications
You must be signed in to change notification settings - Fork 27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Avoid excessive atomic properties updates #95
Conversation
what? We're in DRM here, a "surface" doesn't exist. What are you talking about? If you don't commit the cursor plane state, I assume it's left unaltered...? Have you checked that? |
"planeProps cursor -> listener_commitWindow -> damageSurface -> CDRMAtomicImpl::commit -> planeProps cursor" goes in a loop. I don't know why it works this way. Looks like it's left unaltered. At least the cursor stays visible and there are no artifacts present. |
excuse me? |
You send cursor position and get a |
yea like thats the question how the fuck is that related, idk if curing the symptom will help with fixing the underlying issue |
…hyprwm#106) * drm: dont scan card outputs no need to scan for card[0-9]* and probe card0-eDP etc if they are kms, bootvga and rendernodes etc. skip the wildcard and remove a unused size_t variable. * drm: dont commit state if renderer is missing setting certain env vars to force egl implentations makes the render creation fail on the second gpu. instead of causing a coredump, safeguard commitState and let the monitor turn blank instead.
…yprwm#108) During startup, CDRMAtomicImpl::reset() may emit a call to method commit of a CDRMAtomicRequest instance with member "conn" uninitialized, leading to a segfault. Validate the the pointer before dereference it as a workaround. Fixes: 55ac962 ("DRM: preliminary atomic support") Closes: hyprwm#107 Signed-off-by: Yao Zi <[email protected]>
* consolidates into checkOutput for clearer flow when rescanning connectors * add error log
Not implemented by libudev-devd yet: [ERR] [AQ] drm: No gpus in scanGPUs. [ERR] [AQ] drm: Found no gpus to use, cannot continue [ERR] [AQ] DRM Backend failed
Looks like every or most atomic properties keep their values unless altered so there is no need to repeat them on every commit. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
generally more or less fine
rest is ok to me |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks!
Splitted
addConnector
into 3 parts. Modesetting properties and cursor properties go into separate functions. Mixing those in without need might cause increased cpu usage, flickering or break vrr. Most noticeable with intel videocards.Moved
Colorspace
andhdr_output_metadata
into modeset category.Removed unnecessary
Colorspace
andhdr_output_metadata
clearing unless explicitly requested.Submitting any cursor plane property will break vrr on nvidia. This PR skips setting those properties unless something changes. Doesn't fully fix vrr with hw cursors on nvidia but makes it better. Looks like it is a driver bug and nothing else can be done on AQ/HL side. If this will result in brightness fluctuations with vrr and hw cursors enabled than before this PR it was broken and monitor was stuck at max refresh rate. Should be fixed by disabling vrr to have the same result as before the PR or by disabling hw cursors to get fully working vrr without brightness flickers.