[OpenJDK 2D-Dev] RFR: 8264475: CopyArea ignores clip state in metal rendering pipeline [v3]

Jayathirth D V jdv at openjdk.java.net
Thu Apr 1 14:15:39 UTC 2021


On Thu, 1 Apr 2021 06:58:27 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

>> Jayathirth D V has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Comment update
>
> src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBlitLoops.m line 826:
> 
>> 824:             id<MTLRenderCommandEncoder> interEncoder =
>> 825:                 [mtlc.encoderManager getTextureEncoder:interTexture
>> 826:                                            isSrcOpaque:dstOps->isOpaque
> 
> Should it not be srcOps->isOpaque?

Both source and destination are same in copyArea. So isOpaque property will be same.
But we use 32 bit non-opaque intermediate texture, so for intermediate texture we should pass JNI_FALSE for isOpaque property.

> src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLBlitLoops.m line 854:
> 
>> 852:                             atIndex:MeshVertexBuffer];
>> 853:             [finalEncoder setFragmentTexture:interTexture atIndex: 0];
>> 854:             [finalEncoder drawPrimitives:MTLPrimitiveTypeTriangle vertexStart:0
> 
> Can't we reuse drawTex2Tex() for this snippet?

Thanks for the suggestion Prasanta, yes we should refactor code to use drawTex2Tex. I have updated the PR.

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

PR: https://git.openjdk.java.net/jdk/pull/3283


More information about the 2d-dev mailing list