RFR: 8352407: PixelInterleavedSampleModel with unused components throws RasterFormatException: Incorrect pixel stride [v2]
Sergey Bylokhov
serb at openjdk.org
Thu Apr 3 07:34:49 UTC 2025
On Thu, 3 Apr 2025 06:36:04 GMT, Nikita Gubarkov <ngubarkov at openjdk.org> wrote:
>I just accepted any pixel-interleaved surface with 4-byte stride and assumed that I can blit it directly.
So you implemented logic similar to [this one](https://github.com/openjdk/jdk/blob/bd74922157230c866802b4c5269da81e872525aa/src/java.desktop/share/native/libawt/java2d/loops/LoopMacros.h#L847).
I haven’t found yet whether we have logic to fall back to a "generic Java loop" if the gap is not stored in the array and that memcpy fails. If we’re missing this, we should either:
- Add the fallback,
- Implement another version of the loop that handles the tail, or
- Update the current ISOSCALE_BLIT.
A similar approach could be implemented for Vulkan as well.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24111#discussion_r2026378715
More information about the client-libs-dev
mailing list