jbuchermn / newm

Wayland compositor
MIT License
960 stars 31 forks source link

high refresh rates #64

Closed paulhersch closed 2 years ago

paulhersch commented 2 years ago

Hey i was just trying out newm, is high refresh rate already supported? If not: how could i help implementing it?

jbuchermn commented 2 years ago

Hi,

unfortunately I don't have such a monitor to test. In general, it should be supported although I'm not quite sure if the current implementation of the c-python-update loop is performant enough.

You can configure refresh rate using output.mHz property (see https://github.com/jbuchermn/newm/blob/master/doc/config.md).

A first step in helping to make it work, if it doesn't, would be to follow #61 and upload logs. Based on that, the update loop in c (see https://github.com/jbuchermn/pywm) would need to be optimized - if you want to get into that.

paulhersch commented 2 years ago

just to make sure i have it configured correctly: log says: New output: Unknown: HP 27xq - DP-1 (Unknown HP 27xq CNK0311FR2 (DP-1)) and in my config i have:

pywm = {
    'output.name': 'Unknown HP 27xq CNK0311FR2', 
    'output.mHz': 143856,
   ...
}

i already tried to use the outputs array from the default config, but that didnt work either (with the same parameters given above, shorted to name and mHz) from the log output it seems like it just uses DRM to use the preferred mode from the monitor (which is 60 Hz by default)

jbuchermn commented 2 years ago

configuring this is not very intuitive I admit. I want to implement support for wdisplays which should make this very easy.

In your case:

outputs = [
    { 'name': 'DP-1', 'scale': ..., 'width': ..., 'height': ..., 'mHz': 143856 }
]

This is passed to pywm automatically, so you don't need to place it into pywm = {...}.

paulhersch commented 2 years ago

tried it and works that way without any problems.