On Mon, 9 Jun 2025 22:24:08 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

> the `MaskMarlinAlphaConsumer` field in `RendererContext` is created/resized 
> in DMarlinRasterizer:102
> 
> perhaps we could refactor this code to hide the public field and ensure the 
> single threaded access?

That would get into the sort of changes I'd prefer not to make, at least not as 
part of the initial Unsafe --> FFM conversion, although Laurent could comment 
on that.

Other possibilities include: using thread-local storage for the ALPHA_MAP_XXX 
off heap arrays (in practice, they are only used from the Quantum renderer 
thread, so there would only ever be one copy) or dispensing with off-heap 
arrays entirely for the ALPHA_MAP, and using plain Java arrays. Given how these 
static arrays are used, I'm not sure using off-heap memory is really buying 
much in terms of performance (as opposed to the dynamic edges array, which is 
the primary use of off-heap memory).

Really, though, the simplest thing to do for now is to use shared (rather than 
confined) access for these two arrays and file a follow-up to optimize it if 
needed.

-------------

PR Comment: https://git.openjdk.org/jfx/pull/1814#issuecomment-2957225458

Reply via email to