More a question of intent: if a client has no new frame to draw, are we doing wrong to delete the frame on the server? I would expect we only delete a frame when we have got a new one from the client.
Or instead do we tell the client, compositor has released the frame, and client can then specify that buffer be re-used? That seems a bit wasteful. /me trying to interpret the buffer exchange design from wayland.xml
It's the fact you need the Executor just to deal with frame release, that made me bring this up.
+ struct DestructionShim
+ {
+ std::shared_ptr<std::mutex> const mutex = std::make_shared<std::mutex>();
The way you're sharing this mutex between this and the WaylandBuffer is a bit peculiar looking, but I suspect unavoidable, as you need the mutex for the on_buffer_destroyed callback. You *could* use the void*, but what you're doing is indeed cleaner.
+ if (dpy == EGL_NO_DISPLAY)
+ BOOST_THROW_EXCEPTION((std::runtime_error{"Fuck"}));
Mir has been rated PG13 due to its low expletive, violence and sexual content, please don't jeopardise that. The kids are where its at for all that sweet merchandising profit.
+++ src/platforms/mesa/server/kms/platform.cpp
does this file need to change? I only see header files being added.
+class WaylandBuffer : to_texture( ) override get_deleter( )]() send_done( frame, 0); flush(wl_ resource_ get_client( frame)) ;
+ void gl_bind_
+ for (auto&& frame : frames)
+ {
+ auto framer = std::move(frame);
+ executor->spawn(
+ [frame = framer.release(), deleter = framer.
+ {
+ wl_callback_
+ wl_client_
+ deleter(frame);
+ });
+ }
+ frames.clear();
More a question of intent: if a client has no new frame to draw, are we doing wrong to delete the frame on the server? I would expect we only delete a frame when we have got a new one from the client.
Or instead do we tell the client, compositor has released the frame, and client can then specify that buffer be re-used? That seems a bit wasteful. /me trying to interpret the buffer exchange design from wayland.xml
It's the fact you need the Executor just to deal with frame release, that made me bring this up.
+ struct DestructionShim ptr<std: :mutex> const mutex = std::make_ shared< std::mutex> ();
+ {
+ std::shared_
The way you're sharing this mutex between this and the WaylandBuffer is a bit peculiar looking, but I suspect unavoidable, as you need the mutex for the on_buffer_destroyed callback. You *could* use the void*, but what you're doing is indeed cleaner.
+ if (dpy == EGL_NO_DISPLAY) EXCEPTION( (std::runtime_ error{" Fuck"}) );
+ BOOST_THROW_
Mir has been rated PG13 due to its low expletive, violence and sexual content, please don't jeopardise that. The kids are where its at for all that sweet merchandising profit.
+++ src/platforms/ mesa/server/ kms/platform. cpp
does this file need to change? I only see header files being added.
+++ src/protocol/ wrapper_ generator. cpp
Missing licence.
to be continued...