-
Notifications
You must be signed in to change notification settings - Fork 52
Development/compositorclient multi client rendering #325
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
base: master
Are you sure you want to change the base?
Development/compositorclient multi client rendering #325
Conversation
…ns and timeout handling
…osition client render
| png_structp png = png_create_read_struct(PNG_LIBPNG_VER_STRING, nullptr, PngErrorFn, PngWarnFn); | ||
| if (!png) { fclose(fp); return result; } | ||
|
|
||
| png_infop info = png_create_info_struct(png); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @bramoosterhuis : This code from l.45-l.72 is coming up as a good match to several components, some with nasty licenses. Where did it come from? If it is a straight copy, it may need credit depending on the source.
On the other hand, if you wrote it yourself, you can defend that this is boilerplate usage of libpng. Line 62 could then do with a longer comment so it is clear that you know what you are doing and it has to be this way. You could also refer to http://www.libpng.org/pub/png/libpng-manual.txt before line 45 and say that you are following the instructions therein.
Thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @mhughesacn,
This code was written independently following the official libpng documentation (http://www.libpng.org/pub/png/libpng-manual.txt, Section III.2), not copied from GPL sources. The transformation sequence is standard boilerplate for normalizing any PNG format to RGBA8.
I've added comprehensive documentation: a reference to libpng-manual.txt before line 45, an expanded comment at line 62 explaining the transformation pipeline, and inline comments for each transformation showing intent and understanding.
The similarity to other projects is expected - this is the standard approach documented in the official libpng manual for format normalization.
Happy to provide additional details if needed.
|
Thank you @bramoosterhuis : I have cleared off the match in blackduck (not in the PR), but my apologies, I missed this last night: where did ml-tv-color-small.png come from? |
No problem @mhughesacn! To be fully transparent: I originally created ml-tv-color-small.png for the Mesa renderer tests in ThunderNanoServices and reused it here. It's a test pattern inspired by the Metrological logo designed to verify color channel rendering. |
|
Perfect - thank you @bramoosterhuis - cleared the downvote in the PR. |
This PR improves compositor client reliability and adds comprehensive testing infrastructure:
Key Changes:
Connection validation -
Compositor::IDisplay::Instance()now returnsnullptrwhen the remote compositor connection fails, allowing applications to handle connection failures gracefully instead of crashing.Test infrastructure - Added complete client rendering test suite including:
Buffer lifecycle management - Improved buffer acquisition/release semantics with proper state tracking. The client now correctly signals when new frames are presented vs when the same frame is being re-composited.
Enhanced error handling - Replaced
fprintfdebugging with proper TRACE macros for consistent logging. Added dedicatedBufferInfoandBufferErrortrace categories for fine-grained buffer operation debugging.GBM surface integration - Proper handling of
gbm_surface_lock_front_buffer()timing and orphaned buffer cleanup. Added detailed trace logging for buffer pool management.Testing Features:
This PR works in conjunction with ThunderNanoServices PR rdkcentral/ThunderNanoServices#949 to resolve compositor synchronization issues.