ChanServ changed the topic of #wayland to: https://wayland.freedesktop.org | Discussion about the Wayland protocol and its implementations, plus libinput | register your nick to speak
tagr has quit [Remote host closed the connection]
rasterman has quit [Quit: Gettin' stinky!]
Moprius has joined #wayland
Moprius has quit [Remote host closed the connection]
caveman has quit [Remote host closed the connection]
caveman has joined #wayland
zebrag has quit [Quit: Konversation terminated!]
tanty has quit [Remote host closed the connection]
tanty has joined #wayland
PuercoPop has joined #wayland
wb9688 has quit [Ping timeout: 480 seconds]
mr-rich has joined #wayland
AJ_Z0 has quit [Read error: Connection reset by peer]
AJ_Z0 has joined #wayland
wb9688 has joined #wayland
cool110 has quit [Remote host closed the connection]
cool110 has joined #wayland
pieguy128 has joined #wayland
pieguy128_ has quit [Ping timeout: 480 seconds]
PuercoPop has quit [Ping timeout: 480 seconds]
caveman has quit [Remote host closed the connection]
caveman has joined #wayland
nerdopolis has quit [Ping timeout: 480 seconds]
Compy_ has quit [Quit: Going offline, see ya! (www.adiirc.com)]
kts has joined #wayland
markbolhuis has joined #wayland
<smallville7123>
would recieving 60 messages (713 bytes) every ~0.55 seconds be decent for a display server?
dcz_ has joined #wayland
<i509VCB>
the vast majority of the time the display server would typically be waiting for something like epoll, like messages from clients, vblank events, timers
<i509VCB>
If you wanted to go purely into a loop of just write messages out then you could probably go higher by quite a bitr
<smallville7123>
i can boost it up to 0.2 by setting the data_sleep and ui_update_sleep both to 0.008/4
<smallville7123>
and ~3.6 with 0.008/2
<smallville7123>
any higher and it seems to block the UI or corrupt the data being sent
Leopold_ has quit []
<smallville7123>
(eg, 0.001 blocks/corrupts the shared memory in just over 1 second)
rv1sr has joined #wayland
hardening has joined #wayland
lockywolf has quit []
lockywolf has joined #wayland
junaid has joined #wayland
creich_ has quit []
creich has joined #wayland
markbolhuis has quit [Ping timeout: 480 seconds]
<kennylevinsen>
smallville7123: "data_sleep"? Are you sleeping where you handle Wayland dispatch?
<smallville7123>
im sleeping where i recieve my data from shared memory
<kennylevinsen>
compositor? What do you mean by when you receive data from shared memory?
<smallville7123>
so i dont hog the cpu while waiting for clients to send their data
<kennylevinsen>
compositors don't sleep, they wait on the display fds (poll/epoll, often through the server event loop provided by libwayland). This burns no CPU and means they wake immediately when there is any work to do.
markbolhuis has joined #wayland
<smallville7123>
hmmm
<smallville7123>
how would it deal with race events?
<smallville7123>
eg a large number of clients sending display and audio
<kennylevinsen>
Wayland does not handle audio. In the event loop, the events would fire in series on one thread, from where you can dispatch if needed.
<smallville7123>
hmmm
<smallville7123>
what would happen if it cannot draw all its clients within a single frame?
<kennylevinsen>
Many compositors are single-threaded though, as the heavy bit of work (compositing) is done by the GPU anyway. Receiving the buffer on the socket is only a handful of bytes saying "attach wl_buffer 5".
<kennylevinsen>
Then it misses the frame, but making a GPU copy a few buffers is... Not exactly something that makes it sweat. Barely wakes it up in most cases.
<kennylevinsen>
Compositors only draw their composition buffer once per scan out cycle at most
<kennylevinsen>
They wait till a deadline arrives, and then they draw whatever clients attached last
<smallville7123>
so if all clients where submitting buffers each frame, then it would constantly be skipping frames trying to draw all the compositors?
<kennylevinsen>
Only copying parts that changed since last frame using the damage info
<smallville7123>
all the clients*
<kennylevinsen>
No the compositor generally wouldn't care in the slightest, compositing all visible clients is easy work
<smallville7123>
also does partial drawing make any difference in modern GPU's or is it only needed on weak GPU's ?
<kennylevinsen>
That's what compositors do every single frame after all
<smallville7123>
eg composite each client's full window instead of only compositing damaged regions of each client
<kennylevinsen>
Compositors use reported damage to skip unchanged parts of the frame. This is still valuable, as it saves power, reduces composite time further and frees up GPU resources for other things.
<smallville7123>
would it be expensive to calculate?
<kennylevinsen>
it's not calculated, it's reported by clients
<smallville7123>
hmm
<smallville7123>
would damage regions be difficult/useless to implement for most 2D frameworks
<smallville7123>
as i have oonly ever known XOrg and Wayland to have damage region concept
<smallville7123>
even Skia does not have such a concept
<smallville7123>
nor does DearImgui
<smallville7123>
MacOS has it tho (part of NSView framework)
<smallville7123>
tho mac forces you to use their framworks so it just glues the compositor + NSView stuff together i guess :p
<smallville7123>
think WPF/UPF has it too? (Windows)
<smallville7123>
tho windows and mac been around for years
<smallville7123>
anyway, would damage regions be difficult/useless to implement
<kennylevinsen>
Client or compositor?
<kennylevinsen>
For client, there's various tricks such as doing damage per widget. Damage the whole blinking cursor, or the line edited. You do not need to track individual pixels when you know why you wanted to render.
<smallville7123>
alright
<smallville7123>
what would one do if is unable to share a surface/texture across processes?
manuel__ has joined #wayland
junaid has quit [Ping timeout: 480 seconds]
<kennylevinsen>
you need to be able to share a form of dmabuf across processes if you want to be able to composite gpu buffers
<smallville7123>
hmmm
d_ed has joined #wayland
junaid has joined #wayland
rasterman has joined #wayland
danvet has joined #wayland
junaid has quit [Ping timeout: 480 seconds]
manuel__ has quit [Ping timeout: 480 seconds]
junaid has joined #wayland
cool110 has quit [Ping timeout: 480 seconds]
cool110 has joined #wayland
___nick___ has joined #wayland
kts has quit [Quit: Leaving]
fallenchromium[m] has joined #wayland
markbolhuis has quit [Ping timeout: 480 seconds]
markbolhuis has joined #wayland
markbolhuis has quit []
___nick___ has quit []
jlco has joined #wayland
___nick___ has joined #wayland
___nick___ has quit []
___nick___ has joined #wayland
d_ed has quit [Ping timeout: 480 seconds]
jmdaemon has quit [Ping timeout: 480 seconds]
Leopold_ has joined #wayland
mr-rich has quit [Ping timeout: 480 seconds]
vsyrjala_ has joined #wayland
vsyrjala has quit [Ping timeout: 480 seconds]
Leopold_ has quit [Remote host closed the connection]
Leopold has joined #wayland
Leopold has quit [Remote host closed the connection]
Leopold__ has joined #wayland
junaid has quit [Ping timeout: 480 seconds]
underpantsgnome[m] has quit []
junaid has joined #wayland
smallville7123 has quit [Ping timeout: 480 seconds]
caveman has quit [Remote host closed the connection]
caveman has joined #wayland
junaid has quit [Read error: No route to host]
junaid has joined #wayland
junaid has quit [Remote host closed the connection]
nerdopolis has joined #wayland
kts has joined #wayland
junaid has joined #wayland
caveman has quit [Remote host closed the connection]
caveman has joined #wayland
kts has quit [Ping timeout: 480 seconds]
pochu has quit [Quit: leaving]
bcheng has quit [Remote host closed the connection]
bcheng has joined #wayland
manuel__ has joined #wayland
smallville7123 has joined #wayland
junaid_ has joined #wayland
tanty has quit []
tanty has joined #wayland
junaid_ has quit [Remote host closed the connection]
smallville7123 has quit [Ping timeout: 480 seconds]
rv1sr has quit []
jlco has quit [Ping timeout: 480 seconds]
jlco has joined #wayland
junaid has quit [Remote host closed the connection]
jmdaemon has joined #wayland
Shimmy040 has joined #wayland
manuel__ has quit [Ping timeout: 480 seconds]
dcz_ has quit [Ping timeout: 480 seconds]
Company has quit [Read error: Connection reset by peer]