<feed xmlns='http://www.w3.org/2005/Atom'>
<title>renesas/kmsxx.git/utils, 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>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>kmstest: Add -t|--time</title>
<updated>2026-05-08T08:57:36+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2026-05-08T08:34:34+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=62bc50666198b14f0adecfce08b6b2f20057e080'/>
<id>62bc50666198b14f0adecfce08b6b2f20057e080</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>utils: Add -C|--card option</title>
<updated>2026-03-20T07:12:17+00:00</updated>
<author>
<name>Tomi Valkeinen</name>
<email>tomi.valkeinen@ideasonboard.com</email>
</author>
<published>2026-03-13T06:15:23+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=e300a20e6055de858b8869772fd06682b8644e4f'/>
<id>e300a20e6055de858b8869772fd06682b8644e4f</id>
<content type='text'>
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Tomi Valkeinen &lt;tomi.valkeinen@ideasonboard.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: Correct printf format specifiers for unsigned integers</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:40:03+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=48a3b80996d0dce7e472318c2090e5f4df901567'/>
<id>48a3b80996d0dce7e472318c2090e5f4df901567</id>
<content type='text'>
This commit addresses cppcheck warnings about mismatched printf format
specifiers (invalidPrintfArgType_sint). The format specifiers %i and %d
expect signed integers (int) but the variables being passed are unsigned
integers (uint32_t, unsigned). This mismatch can lead to undefined behavior
and incorrect output formatting.

Changes made:
- utils/kmstouch.cpp: Changed %i to %u for event code formatting
- utils/kmstouch.cpp: Changed %d to %u for event type and property type formatting
- utils/kmsview.cpp: Changed %d to %u for frame number formatting

These fixes ensure proper type safety in printf formatting and prevent
potential undefined behavior when printing unsigned integer values.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit addresses cppcheck warnings about mismatched printf format
specifiers (invalidPrintfArgType_sint). The format specifiers %i and %d
expect signed integers (int) but the variables being passed are unsigned
integers (uint32_t, unsigned). This mismatch can lead to undefined behavior
and incorrect output formatting.

Changes made:
- utils/kmstouch.cpp: Changed %i to %u for event code formatting
- utils/kmstouch.cpp: Changed %d to %u for event type and property type formatting
- utils/kmsview.cpp: Changed %d to %u for frame number formatting

These fixes ensure proper type safety in printf formatting and prevent
potential undefined behavior when printing unsigned integer values.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: Initialize uninitialized member variables</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:37:51+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=65b0414775f0674cfb9aff0863a5be8c0d72dfaa'/>
<id>65b0414775f0674cfb9aff0863a5be8c0d72dfaa</id>
<content type='text'>
This commit addresses cppcheck warnings about member variables that are
not properly initialized in constructors (uninitMemberVar). Uninitialized
member variables can lead to undefined behavior and unpredictable program
execution, making this a critical bug fix.

Changes made:
- kmscube/cube-gles2.cpp: Initialize m_width and m_height to 0 in GlScene
  constructor to prevent undefined behavior when these values are used
- utils/kmstest.cpp: Initialize m_frame_num and m_flip_count to 0 in
  FlipState constructor to ensure proper frame counting behavior

These fixes prevent potential crashes and ensure deterministic behavior
by providing proper initial values for all member variables.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit addresses cppcheck warnings about member variables that are
not properly initialized in constructors (uninitMemberVar). Uninitialized
member variables can lead to undefined behavior and unpredictable program
execution, making this a critical bug fix.

Changes made:
- kmscube/cube-gles2.cpp: Initialize m_width and m_height to 0 in GlScene
  constructor to prevent undefined behavior when these values are used
- utils/kmstest.cpp: Initialize m_frame_num and m_flip_count to 0 in
  FlipState constructor to ensure proper frame counting behavior

These fixes prevent potential crashes and ensure deterministic behavior
by providing proper initial values for all member variables.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix: Replace C-style casts with C++ casts</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:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://gitolite.ideasonboard.com/renesas/kmsxx.git/commit/?id=0271a62e676d50940ec5f86d94cf66629894c25f'/>
<id>0271a62e676d50940ec5f86d94cf66629894c25f</id>
<content type='text'>
This commit addresses cppcheck warnings about C-style casts (cstyleCast)
by replacing them with appropriate C++ casts. C-style casts are considered
dangerous because they can perform unsafe conversions without compile-time
type checking, while C++ casts are more explicit and type-safe.

Changes made:
- static_cast for safe type conversions (e.g., void* to struct*)
- reinterpret_cast for pointer type conversions (e.g., uint8_t* to char*)
- Combined static_cast and reinterpret_cast for integer-to-pointer conversions

Fixed files:
- kmscube/cube-gles2.cpp: GLvoid* casts for OpenGL vertex attribute pointers
- kmscube/cube-wl.cpp: Wayland interface pointer casts
- kmscube/cube-x11.cpp: X11 window handle conversion
- utils/fbtest.cpp: mmap return value cast
- utils/kmstest.cpp: Framebuffer pointer arithmetic
- utils/kmsview.cpp: Framebuffer memory mapping cast
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit addresses cppcheck warnings about C-style casts (cstyleCast)
by replacing them with appropriate C++ casts. C-style casts are considered
dangerous because they can perform unsafe conversions without compile-time
type checking, while C++ casts are more explicit and type-safe.

Changes made:
- static_cast for safe type conversions (e.g., void* to struct*)
- reinterpret_cast for pointer type conversions (e.g., uint8_t* to char*)
- Combined static_cast and reinterpret_cast for integer-to-pointer conversions

Fixed files:
- kmscube/cube-gles2.cpp: GLvoid* casts for OpenGL vertex attribute pointers
- kmscube/cube-wl.cpp: Wayland interface pointer casts
- kmscube/cube-x11.cpp: X11 window handle conversion
- utils/fbtest.cpp: mmap return value cast
- utils/kmstest.cpp: Framebuffer pointer arithmetic
- utils/kmsview.cpp: Framebuffer memory mapping cast
</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>
</feed>
