Skip to content
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

[waylandws_client]: Added Multithread support #4

Open
wants to merge 5 commits into
base: rcar_gen3e
Choose a base branch
from

Conversation

sdikshit786
Copy link

@sdikshit786 sdikshit786 commented Jun 2, 2023

  • Added multithread support
    Multithreaded usage is not completely possible because rcar EGL uses one wayland queue. Wayland queue should be per EGL surface.
    In earlier implementation, there was a single global wayland event queue created in wsegl backend during eglInitialize() . In the current implementation we moved the event queue creation to eglCreateWindowSurface() and each window drawable has its own wayland event queue.
  • Code refactoring

rajendraprasadkj and others added 5 commits June 1, 2023 09:27
create wl_event_queue in eglCreateWindowSurface() to make it
thread specific

Authored-by: Ajay Kumar Sahoo <[email protected]>

Re-based the code changes for wayland-wsegl v3.1.1.

Signed-off-by: Rajendraprasad K J <[email protected]>
 - drawable->surface->frame_sync & drawable->callback can exists even if
 drawable->window points to NULL
 For eg- in case of resize.
 For the resize case if we avoid destroying the callback then done events
 gets dispatched in freed queue at later point of time.

 - Also for proper cleanup reallocate a new surface in case of resize while
 setting up new window drawable and free up the old one from inside
 WSEGLc_DeleteDrawable.

Signed-off-by: Sunidhi Dixit <[email protected]>
- For throtling the frames use a generic callback holder member
instead of drawable->callback and drawable->surface->frame_sync
to give a chance for the compositor to handle the commit and send
a release event before checking for a free wl_buffer.

Signed-off-by: Sunidhi Dixit <[email protected]>
There is no usecase in which aggressive sync mode
is useful hence removing it. Also with this change
there is no point in keeping drawable->callback.

Signed-off-by: Sunidhi Dixit <[email protected]>
Removed the redundant free_buffer_queue, free_buffer and
free_buffer_unused. Added a new member in struct kms_buffer
i.e. is_free which is true if the buffer is free to be used
or false if the buffer is already been used as back buffer.

Signed-off-by: Sunidhi Dixit <[email protected]>
@sdikshit786 sdikshit786 changed the title [WIP][waylandws_client]: Added Multithread support [waylandws_client]: Added Multithread support Jun 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants