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
<ngortheone>
clients are forced to select the lowest unoccupied ID
<ngortheone>
that is technically a violation of the spec, because clients are not free to choose any id, the server tracks their IDs. It might as well allocate IDs for them.
<Arnavion>
It's not an implementation detail
<Arnavion>
https://wayland.freedesktop.org/docs/html/ch04.html#sect-Protocol-Creating-Objects >For efficiency purposes, the IDs are densely packed in the sense that the ID N will not be used until N-1 has been used. Any ID allocation algorithm that does not maintain this property is incompatible with the implementation in libwayland.
danshick has quit [Ping timeout: 480 seconds]
* ngortheone
hmm
caveman has joined #wayland
<ngortheone>
in this case I can still argue that server might as well allocate id's for the client. This optimizaion forces client to repeat the work of id tracking, the work that server is already doing..
<ngortheone>
"is incompatible with the implementation in libwayland" - implementation detail of libwayland :D
<Arnavion>
No
cvmn has quit [Ping timeout: 480 seconds]
<danieldg>
well, having the client maintain an id freelist saves a round-trip compared to having the server allocate ids
<Arnavion>
The link I gave you is about the protocol. The first sentence is the protocol telling you to use sequential IDs. The second sentence is the protocol motivating you to listen to the first sentence, because if you don't you'll be incomatible with libwayland
<Arnavion>
If the HTTP protocol told you that requests start with "HTTP", and if you don't send "HTTP" you'll be incomatible with Apache, it wouldn't mean that requests starting with "HTTP" is an implementation detail of Apache
<Arnavion>
incompatible*
<ngortheone>
I see what you are saying, Arnavion. And you are probably right. I think the wording of the document could've been a bit more straightforward.
<Arnavion>
(Of course it's possible the libwayland implementation is the reason the protocol tells you to do that, but the point still stands that it's codified in the protocol now)
<ngortheone>
Thius is design choise is likely dictated by the fact that the fastest lookup algorithm is O(1) and it is array index operation. There is nothing faster than that.
<ngortheone>
Well behaving clients have to maintain a separate datastructure, like a (de)queue/heap to maintain the list of available indices (to re-use an index that was deleted in the middle of the array)
Company has quit [Quit: Leaving]
<ngortheone>
but there is nothing stopping a client to sequentially allocate IDs without re-using old indices
floof58 is now known as Guest11849
floof58 has joined #wayland
<Arnavion>
The sentence I posted does not require to reuse indices in the middle of the array, and the code you linked allows both an index in the middle of the array or an index at the end
<ngortheone>
Yes. that is why I'm saying "well-behaving clients should ..."
<Arnavion>
I don't see why one should be considered "well-behaving" and the other shouldn't
Guest11849 has quit [Ping timeout: 480 seconds]
<ngortheone>
I can argue that well-behaving clients less waste server's memory by doing free index tracking
<Arnavion>
If the server wanted clients to not waste memory it wouldn't have set WL_MAP_MAX_OBJECTS to 15 million
<dottedmag>
^^ hopefully the confusion about implementation details will be cleared. I also was confused about it while reading the document for the first time
<swick[m]>
JoshuaAshton: I don't think that those are special requirements. We want our color management to work for the vfx industry and also need direct scanout for mobile devices.
dcz has quit [Ping timeout: 480 seconds]
kts has quit [Quit: Konversation terminated!]
Szadek has quit [Quit: WeeChat 3.8]
Company has joined #wayland
clem_ has quit [Quit: clem_]
clem_ has joined #wayland
cvmn has joined #wayland
qura has joined #wayland
qura_ has joined #wayland
qura has quit [Remote host closed the connection]
bookworm has quit [Read error: Connection reset by peer]
bookworm has joined #wayland
jmdaemon has quit [Ping timeout: 480 seconds]
nerdopolis has joined #wayland
dcz has joined #wayland
psykose has joined #wayland
qura_ has quit [Remote host closed the connection]
cvmn has quit [Ping timeout: 480 seconds]
floof58 is now known as Guest11876
floof58 has joined #wayland
Guest11876 has quit [Remote host closed the connection]
mohit815 has quit []
mohit815 has joined #wayland
kts has joined #wayland
kts has quit [Quit: Konversation terminated!]
Consolatis has quit [Quit: ZNC 1.8.2+deb2+b1 - https://znc.in]
Consolatis has joined #wayland
kts has joined #wayland
thevar1able_ has quit [Remote host closed the connection]
thevar1able_ has joined #wayland
kts has quit [Quit: Konversation terminated!]
fmuellner has joined #wayland
cool110 has joined #wayland
rasterman has joined #wayland
Leopold___ has quit [Ping timeout: 480 seconds]
Leopold_ has joined #wayland
julio7359 has joined #wayland
julio7359 has quit [Ping timeout: 480 seconds]
julio7359 has joined #wayland
dcz has quit [Ping timeout: 480 seconds]
julio7359 has quit [Ping timeout: 480 seconds]
rasterman has quit [Quit: Gettin' stinky!]
Consolatis_ has joined #wayland
Consolatis is now known as Guest11894
Consolatis_ is now known as Consolatis
cool110 has quit [Remote host closed the connection]
cool110 has joined #wayland
Guest11894 has quit [Ping timeout: 480 seconds]
cool110 has quit [Remote host closed the connection]
cool110 has joined #wayland
clem_ has quit [Quit: clem_]
clem_ has joined #wayland
clem_ has quit []
cool110 has quit [Remote host closed the connection]
cool110 has joined #wayland
clem_ has joined #wayland
julio7359 has joined #wayland
rv1sr has quit []
julio7359 has quit [Remote host closed the connection]
julio7359 has joined #wayland
Brainium has joined #wayland
jmdaemon has joined #wayland
eroux has quit [Read error: Connection reset by peer]
danvet has quit [Ping timeout: 480 seconds]
julio7359 has quit [Ping timeout: 480 seconds]
Leopold__ has joined #wayland
Leopold_ has quit [Remote host closed the connection]