Skip to content

[BUG] SKMetalView issues on older hardware (iOS 15) #3284

@pancirno

Description

@pancirno

Description

Commit c2a1fde introduced changes related to simulator performance by including calls to DepthStencilStorageMode setter. DepthStencilStorageMode was added in iOS 16.0, which means older systems we'd like to support will crash on initializing this control.

Additionaly, with the said changes to the simulator performance, the class now calls to an obsoleted GRBackendRenderTarget constructor, which is weird.

Code

Program crashes immediately on instancing the SKMetalView class.

Expected Behavior

Program starts and renders things correctly in SKMetalView.

Actual Behavior

Program crashes on startup with initialization of SKMetalView

Version of SkiaSharp

3.119.0 (Current)

Last Known Good Version of SkiaSharp

2.88.8 (Deprecated)

IDE / Editor

Visual Studio (Windows)

Platform / Operating System

iOS

Platform / Operating System Version

iOS 15

Devices

iPhone SE

Relevant Screenshots

No response

Relevant Log Output

`ObjCRuntime.ObjCException: 'Objective-C exception thrown.  Name: NSInvalidArgumentException Reason: -[SKMetalView setDepthStencilStorageMode:]: unrecognized selector sent to instance 0x10a255a80
Native stack trace:
	0   CoreFoundation                      0x00000001821a7c74 EEC1287D-059B-38C8-9BC1-58A0C8B1E6C2 + 601204
	1   libobjc.A.dylib                     0x00000001999d7ee4 objc_exception_throw + 56
	2   CoreFoundation                      0x00000001822786e8 EEC1287D-059B-38C8-9BC1-58A0C8B1E6C2 + 1455848
	3   UIKitCore                           0x00000001852ff20c 9D301877-2593-385C-8F72-F075AA0B48FA + 15397388
	4   CoreFoundation                      0x000000018214154c EEC1287D-059B-38C8-9BC1-58A0C8B1E6C2 + 181580
	5   CoreFoundation                      0x000000018214075c _CF_forwarding_prep_0 + 92
	6   XXXXXXXXXXXXXXXXXXX                 0x0000000104c56a7c xamarin_dyn_objc_msgSendSuper + 164
	7   XXXXXXXXXXXXXXXXXXX                 0x0000000104c0bee0 wrapper_managed_to_native_ObjCRuntime_Messaging_void_objc_msgSendSuper_UIntPtr_intptr_intptr_uintptr + 160
	8   XXXXXXXXXXXXXXXXXXX                 0x0000000104b4d524 MetalKit_MTKView_set_DepthStencilStorageMode_Metal_MTLStorageMode + 148
	9   XXXXXXXXXXXXXXXXXXX                 0x0000000102c3fdd4 SkiaSharp_Views_iOS_SKMetalView_Initialize + 964
	10  XXXXXXXXXXXXXXXXXXX                 0x0000000102c3f6ec SkiaSharp_Views_iOS_SKMetalView__ctor_CoreGraphics_CGRect + 252
	11  XXXXXXXXXXXXXXXXXXX                 0x00000001038d13d4 Sitana_iOS_SitanaViewController_ViewDidLoad + 836
	12  XXXXXXXXXXXXXXXXXXX                 0x00000001038d4a9c Sitana_iOS_SitanaViewController___Registrar_Callbacks___callback_91_Sitana_iOS_SitanaViewController_ViewDidLoad_intptr_intptr_intptr_ + 220
	13  XXXXXXXXXXXXXXXXXXX                 0x00000001038f5218 wrapper_native_to_managed_Sitana_iOS_SitanaViewController___Registrar_Callbacks___callback_91_Sitana_iOS_SitanaViewController_ViewDidLoad_intptr_intptr_intptr_ + 200
	14  XXXXXXXXXXXXXXXXXXX                 0x0000000104f10b04 -[Sitana_iOS_SitanaViewController viewDidLoad] + 40`

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions