<feed xmlns='http://www.w3.org/2005/Atom'>
<title>renesas/kmsxx.git/kms++util, branch writeback</title>
<subtitle>kmsxx, cloned from https://github.com/tomba/kmsxx</subtitle>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/'/>
<entry>
<title>card: Add support for writeback connectors</title>
<updated>2026-05-11T12:56:34+00:00</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2019-06-16T23:31:28+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=1116fb3ba4531934980c3354ddadd50d2d151b1c'/>
<id>1116fb3ba4531934980c3354ddadd50d2d151b1c</id>
<content type='text'>
Enable enumeration of writeback connectors if both libdrm and the device
support it. The new Card::has_writeback() method report if the card
support writeback connectors.

Existing code that expect all connectors to model an output may be
confused by the sudden availability of new connectors. To handle this
issue,

- add a KMSXX_DISABLE_WRITEBACK_CONNECTORS environment variable to
  disable enumeration of writeback connectors, similarly to universal
  planes ; and

- ignore writeback connectors where no specific connector is requested
  (Card::get_first_connected_connector(),
  ResourceManager::reserve_connector() if no connector name is
  specified, and applications that use all connected outputs).

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable enumeration of writeback connectors if both libdrm and the device
support it. The new Card::has_writeback() method report if the card
support writeback connectors.

Existing code that expect all connectors to model an output may be
confused by the sudden availability of new connectors. To handle this
issue,

- add a KMSXX_DISABLE_WRITEBACK_CONNECTORS environment variable to
  disable enumeration of writeback connectors, similarly to universal
  planes ; and

- ignore writeback connectors where no specific connector is requested
  (Card::get_first_connected_connector(),
  ResourceManager::reserve_connector() if no connector name is
  specified, and applications that use all connected outputs).

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>utils: Add a dump_framebuffer() method</title>
<updated>2026-05-11T12:55:24+00:00</updated>
<author>
<name>Laurent Pinchart</name>
<email>laurent.pinchart@ideasonboard.com</email>
</author>
<published>2019-06-16T23:34:29+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=cf7eadd88eeeae3a21305272499676a2df67bb94'/>
<id>cf7eadd88eeeae3a21305272499676a2df67bb94</id>
<content type='text'>
Add a new method to write the contents of a framebuffer to a file
descriptor. This can be used to capture frames from writeback
connectors.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a new method to write the contents of a framebuffer to a file
descriptor. This can be used to capture frames from writeback
connectors.

Signed-off-by: Laurent Pinchart &lt;laurent.pinchart@ideasonboard.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>kmstest: Use pixpat vbar for the moving flip bar</title>
<updated>2026-05-08T14:25:59+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2026-05-08T09:27:46+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=6c7a9ada6113ea1f71bbc6780892fb3cb8c3ba3b'/>
<id>6c7a9ada6113ea1f71bbc6780892fb3cb8c3ba3b</id>
<content type='text'>
Replace the hand-rolled draw_color_bar call in FlipState::draw_bar with
pixpat's "vbar" pattern via a new draw_vbar_pattern helper in kms++util.
The pattern fills the full buffer, so the old_xpos bookkeeping for
clearing the previous bar is no longer needed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replace the hand-rolled draw_color_bar call in FlipState::draw_bar with
pixpat's "vbar" pattern via a new draw_vbar_pattern helper in kms++util.
The pattern fills the full buffer, so the old_xpos bookkeeping for
clearing the previous bar is no longer needed.
</pre>
</div>
</content>
</entry>
<entry>
<title>kms++util: Replace test-pattern generator with pixpat</title>
<updated>2026-05-08T14:25:34+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2026-05-04T13:19:04+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=549c347d6feb2e94a810a720c97a8bf0f57317a1'/>
<id>549c347d6feb2e94a810a720c97a8bf0f57317a1</id>
<content type='text'>
Switch draw_test_pattern() to call libpixpat (linked statically into
libkms++util.so) instead of the in-tree pattern generator. Pixpat
covers every pattern (kmstest, smpte, solid colors) and every pixel
format the previous generator handled, so behavior is unchanged for
all callers.

Drop the now-unused machinery: conv.h and conv-*.h template writers,
color16.h (RGB16/YUV16 plus conversions), the *_old / _single / _multi
declarations that had no definitions or callers, and the c_draw_test_pattern
C ABI which had no callers anywhere in the tree. RecStandard and
ColorRange move from color16.h directly into kms++util.h, since they
are still part of the public TestPatternOptions struct.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Switch draw_test_pattern() to call libpixpat (linked statically into
libkms++util.so) instead of the in-tree pattern generator. Pixpat
covers every pattern (kmstest, smpte, solid colors) and every pixel
format the previous generator handled, so behavior is unchanged for
all callers.

Drop the now-unused machinery: conv.h and conv-*.h template writers,
color16.h (RGB16/YUV16 plus conversions), the *_old / _single / _multi
declarations that had no definitions or callers, and the c_draw_test_pattern
C ABI which had no callers anywhere in the tree. RecStandard and
ColorRange move from color16.h directly into kms++util.h, since they
are still part of the public TestPatternOptions struct.
</pre>
</div>
</content>
</entry>
<entry>
<title>kms++: Update pixel formats to latest upstream</title>
<updated>2026-05-08T08:57:30+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2026-05-07T19:18:39+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=9cb56229bcd96448ae133c5b42622e1c1e740197'/>
<id>9cb56229bcd96448ae133c5b42622e1c1e740197</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Drop libfmt</title>
<updated>2026-04-30T08:09:49+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2026-04-30T06:35:03+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=f9da4640c4098107aefc6c02b12b543384cccc50'/>
<id>f9da4640c4098107aefc6c02b12b543384cccc50</id>
<content type='text'>
We can use std::format() and a custom print() wrapper with C++20. When
moving to C++23, we can drop the wrapper.

Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can use std::format() and a custom print() wrapper with C++20. When
moving to C++23, we can drop the wrapper.

Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>testpat: Fix div by zero cppcheck warning</title>
<updated>2025-12-18T10:35:28+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2025-12-18T10:30:25+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=44e660203bcbab509b0ad08b0038192ec471a8de'/>
<id>44e660203bcbab509b0ad08b0038192ec471a8de</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: Use const references to avoid unnecessary variable copying</title>
<updated>2025-12-18T10:23:57+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2025-09-13T15:20:35+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=bb4d48fbf9d0ad6be570d9c9b052f835f3a8b0d5'/>
<id>bb4d48fbf9d0ad6be570d9c9b052f835f3a8b0d5</id>
<content type='text'>
This commit addresses cppcheck warnings about variables that can be
declared as const references (constVariableReference). These variables
were being copied unnecessarily when they could be accessed as const
references, improving performance and code clarity.

Fixed files:
- kms++util/src/cpuframebuffer.cpp: Make plane reference const in destructor
- kms++util/src/testpat.cpp: Make info and lambda parameter const references
- utils/kmstest.cpp: Make loop variable const reference in output parsing
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit addresses cppcheck warnings about variables that can be
declared as const references (constVariableReference). These variables
were being copied unnecessarily when they could be accessed as const
references, improving performance and code clarity.

Fixed files:
- kms++util/src/cpuframebuffer.cpp: Make plane reference const in destructor
- kms++util/src/testpat.cpp: Make info and lambda parameter const references
- utils/kmstest.cpp: Make loop variable const reference in output parsing
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: Resolve variable shadowing warnings</title>
<updated>2025-12-18T10:23:57+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2025-09-13T14:43:53+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=d785a753f9406bf74150e038ccf58b8b40eea932'/>
<id>d785a753f9406bf74150e038ccf58b8b40eea932</id>
<content type='text'>
Fix cppcheck shadowVariable and shadowArgument warnings by renaming
local variables to avoid conflicts:
- Rename 'ob' to 'prop' in property creation loop in card.cpp
- Rename loop variable 'y_offset' to 'y_off' in conv-yuv-semiplanar.h
- Rename local 'y' to 'y_val' in SMPTE pattern generator in testpat.cpp
- Rename 'is_last' to 'child_is_last' in entry printing in kmsprint.cpp

These changes eliminate naming conflicts while preserving functionality
and improving code clarity.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix cppcheck shadowVariable and shadowArgument warnings by renaming
local variables to avoid conflicts:
- Rename 'ob' to 'prop' in property creation loop in card.cpp
- Rename loop variable 'y_offset' to 'y_off' in conv-yuv-semiplanar.h
- Rename local 'y' to 'y_val' in SMPTE pattern generator in testpat.cpp
- Rename 'is_last' to 'child_is_last' in entry printing in kmsprint.cpp

These changes eliminate naming conflicts while preserving functionality
and improving code clarity.
</pre>
</div>
</content>
</entry>
<entry>
<title>perf: Pass parameters by const reference to avoid copies</title>
<updated>2025-12-18T10:23:57+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2025-09-13T14:42:04+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=9c67dae2d2e6f977e7dc8c5ed070e2bc07383c8a'/>
<id>9c67dae2d2e6f977e7dc8c5ed070e2bc07383c8a</id>
<content type='text'>
Fix cppcheck performance warnings by passing function parameters
by const reference instead of by value, preventing unnecessary
copies:
- string parameters in open_device_by_path()
- set&lt;Connector*&gt; parameters in connector finder functions
- vector parameter in FlipState constructor
- range variable in kmscapture loop

These changes improve performance by avoiding object copies while
maintaining the same functionality.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix cppcheck performance warnings by passing function parameters
by const reference instead of by value, preventing unnecessary
copies:
- string parameters in open_device_by_path()
- set&lt;Connector*&gt; parameters in connector finder functions
- vector parameter in FlipState constructor
- range variable in kmscapture loop

These changes improve performance by avoiding object copies while
maintaining the same functionality.
</pre>
</div>
</content>
</entry>
</feed>
