On Thu, 11 Feb 2021 20:55:35 GMT, Gerard Ziemski <gziem...@openjdk.org> wrote:

>> Ajit Ghaisas has updated the pull request incrementally with two additional 
>> commits since the last revision:
>> 
>>  - Lanai PR#181 - 8261143 - aghaisas
>>  - Lanai PR#180 - 8261546 - jdv
>
> src/java.desktop/macosx/native/libawt_lwawt/java2d/metal/MTLLayer.m line 112:
> 
>> 110:                 sourceSize:MTLSizeMake(self.buffer.width, 
>> self.buffer.height, 1)
>> 111:                 toTexture:mtlDrawable.texture destinationSlice:0 
>> destinationLevel:0 destinationOrigin:MTLOriginMake(0, 0, 0)];
>> 112:         [blitEncoder endEncoding];
> 
> There is an issue with this code. Running Java2D.jar in Xcode asserts here 
> with this message:
> 
> 2021-02-11 14:11:45.710457-0600 java[49971:9486360] Metal API Validation 
> Enabled
> 2021-02-11 14:11:46.038720-0600 system_profiler[49975:9486885] Metal API 
> Validation Enabled
> -[MTLDebugBlitCommandEncoder 
> internalValidateCopyFromTexture:sourceSlice:sourceLevel:sourceOrigin:sourceSize:toTexture:destinationSlice:destinationLevel:destinationOrigin:options:]:474:
>  failed assertion `(sourceOrigin.y + sourceSize.height)(444) must be <= 
> height(400).'
> (lldb) 
> 
> and forcing the execution past it results in the java process crashing.
> 
> A solution would be to clip the src size like this:
> 
>         NSUInteger src_x = self.leftInset*self.contentsScale;
>         NSUInteger src_y = self.topInset*self.contentsScale;
>         NSUInteger src_w = self.buffer.width-src_x;
>         NSUInteger src_h = self.buffer.height-src_y;
>         
>         [blitEncoder
>                 copyFromTexture:self.buffer sourceSlice:0 sourceLevel:0
>                 sourceOrigin:MTLOriginMake((jint)src_x, (jint)src_y, 0)
>                 sourceSize:MTLSizeMake(src_w, src_h, 1)
>                 toTexture:mtlDrawable.texture destinationSlice:0 
> destinationLevel:0 destinationOrigin:MTLOriginMake(0, 0, 0)];
>         [blitEncoder endEncoding];

I guess you will only see this if `Metal API Validation Enabled`

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

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

Reply via email to