Open inforithmics opened 2 months ago
I think this is being fixed here https://github.com/mono/SkiaSharp/pull/2927 escpecially in this commit https://github.com/mono/SkiaSharp/pull/2927/commits/f2afcb6e1c307a6f3341a0521dd66f05b4f22170 (where webgl is specified for wasm -s USE_WEBGL2=1)
Support for SkiaSharp 3.0 is coming in Uno 5.3 and later, and additional changes will follow as the newer bits get available.
Thanks for the clarification: using uno.Sdk 5.3.0-dev.1873 seems to fix the build error with browser-wasm
Thanks for the update!
Unfortunatly the error still exists. During a merge the SkiaSharp Version got downgraded to 2.88.8 And there it works but with SkiaSharp 3.0.0-preview.4.1 it doesn't
@inforithmics which errors do you get?
It is now a different message
C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : [00:00:01.1118810] Unhandled exception. System.Exception: Could not resolve SkiaSharp.Views.Windows
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : [00:00:01.1120130] at Driver.Resolve(String asm_name, AssemblyKind& kind) in /_/src/Uno.Wasm.Packager/packager.cs:line 248
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : [00:00:01.1120250] at Driver.Import(String ra, AssemblyKind kind) in /_/src/Uno.Wasm.Packager/packager.cs:line 319
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : [00:00:01.1120285] at Driver.Import(String ra, AssemblyKind kind) in /_/src/Uno.Wasm.Packager/packager.cs:line 319
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : [00:00:01.1120340] at Driver.Run(String[] args) in /_/src/Uno.Wasm.Packager/packager.cs:line 786
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : [00:00:01.1120701] at Driver.Main(String[] args) in /_/src/Uno.Wasm.Packager/packager.cs:line 413
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : System.Exception: Failed to generate wasm layout (More details are available in diagnostics mode or using the MSBuild /bl switch)
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : at Uno.Wasm.Bootstrap.ShellTask_v1f66b9b15b66efa87ca84d70b6879ddd12d18414.RunPackager() in /_/src/Uno.Wasm.Bootstrap/ShellTask.cs:line 768
11>C:\Users\thoma\.nuget\packages\uno.wasm.bootstrap\8.0.15\build\Uno.Wasm.Bootstrap.targets(213,3): error : at Uno.Wasm.Bootstrap.ShellTask_v1f66b9b15b66efa87ca84d70b6879ddd12d18414.Execute() in /_/src/Uno.Wasm.Bootstrap/ShellTask.cs:line 271
@inforithmics this particular issue is fixed in both 5.3 and 5.4-dev builds. Which build of uno did you try?
I tried again 5.3.31 (Uno.Sdk) (I did run uno-check to update the dependencies).
[00:00:07.8690982] "C:/Users/thoma/.uno/emsdk/emsdk-3.1.34/emsdk/upstream/bin\wasm-ld.exe" -o D:\GitHub\Mapsui\Samples\Mapsui.Samples.Uno.WinUI\Mapsui.Samples.Uno.WinUI\obj\Debug\net8.0-browserwasm\dist_work/dotnet.native.wasm driver.o pinvoke.o corebindings.o C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a C:/Users/thoma/.nuget/packages/harfbuzzsharp.nativeassets.webassembly/8.3.0-preview.4.1/buildTransitive/netstandard1.0/libHarfBuzzSharp.a/3.1.34/simd,st/libHarfBuzzSharp.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-ee-interp.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-icall-table.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmonosgen-2.0.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/wasm-bundled-timezones.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-wasm-simd.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libSystem.Native.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libSystem.IO.Compression.Native.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libSystem.Globalization.Native.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libicuuc.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libicui18n.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libicudata.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-wasm-eh-wasm.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-component-marshal-ilgen-static.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-component-diagnostics_tracing-static.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-component-hot_reload-static.a C:/Users/thoma/AppData/Local/Temp/dotnet-runtime-wasm-windows-498e18e-7331dcb60e0-8790049905-Release-simd/runtimes/browser-wasm/native/libmono-component-debugger-static.a -LC:\Users\thoma\.uno\emsdk\emsdk-3.1.34\emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten C:\Users\thoma\.uno\emsdk\emsdk-3.1.34\emsdk\upstream\emscripten\cache\sysroot\lib\wasm32-emscripten\libz.a -lGL -lal -lhtml5 -lstubs-debug -lnoexit -lc-debug -ldlmalloc -lcompiler_rt-wasm-sjlj -lc++-except -lc++abi-debug-except -lunwind-except -lsockets -mllvm -combiner-global-alias-analysis=false -mllvm -wasm-enable-sjlj -mllvm -disable-lsr -mllvm -wasm-enable-eh -mllvm -exception-model=wasm --allow-undefined-file=C:\Users\thoma\AppData\Local\Temp\tmp0oxvv089.undefined --strip-debug --export-if-defined=fmod --export-if-defined=atan2 --export-if-defined=fma --export-if-defined=pow --export-if-defined=fmodf --export-if-defined=atan2f --export-if-defined=fmaf --export-if-defined=powf --export-if-defined=asin --export-if-defined=asinh --export-if-defined=acos --export-if-defined=acosh --export-if-defined=atan --export-if-defined=atanh --export-if-defined=cbrt --export-if-defined=cos --export-if-defined=cosh --export-if-defined=exp --export-if-defined=log --export-if-defined=log2 --export-if-defined=log10 --export-if-defined=sin --export-if-defined=sinh --export-if-defined=tan --export-if-defined=tanh --export-if-defined=asinf --export-if-defined=asinhf --export-if-defined=acosf --export-if-defined=acoshf --export-if-defined=atanf --export-if-defined=atanhf --export-if-defined=cbrtf --export-if-defined=cosf --export-if-defined=coshf --export-if-defined=expf --export-if-defined=logf --export-if-defined=log2f --export-if-defined=log10f --export-if-defined=sinf --export-if-defined=sinhf --export-if-defined=tanf --export-if-defined=tanhf --export-if-defined=malloc --export-if-defined=stackSave --export-if-defined=stackRestore --export-if-defined=stackAlloc --export-if-defined=memalign --export-if-defined=memset --export-if-defined=htons --export-if-defined=ntohs --export-if-defined=free --export-if-defined=__get_exception_message --export-if-defined=__cpp_exception --export-if-defined=__cxa_increment_exception_refcount --export-if-defined=__cxa_decrement_exception_refcount --export-if-defined=__thrown_object_from_unwind_exception --export-if-defined=__start_em_asm --export-if-defined=__stop_em_asm --export-if-defined=__start_em_lib_deps --export-if-defined=__stop_em_lib_deps --export-if-defined=__start_em_js --export-if-defined=__stop_em_js --export-if-defined=fflush --export=emscripten_stack_get_end --export=emscripten_stack_get_free --export=emscripten_stack_get_base --export=emscripten_stack_get_current --export=emscripten_stack_init --export=stackSave --export=stackRestore --export=stackAlloc --export=__errno_location --export=malloc --export=free --export=__trap --export=__wasm_call_ctors --export=__dl_seterr --export=emscripten_builtin_memalign --export=ntohs --export=htons --export=htonl --export-table --growable-table -z stack-size=5242880 --initial-memory=16777216 --no-entry --max-memory=2147483648 --stack-first
1> [00:00:07.8691101] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glWaitSync
1> [00:00:07.8691356] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glClientWaitSync
1> [00:00:07.8691418] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glGetStringi
1> [00:00:07.8691446] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glGetStringi
1> [00:00:07.8691474] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glDrawElementsInstancedBaseVertexBaseInstanceWEBGL
1> [00:00:07.8691712] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glDrawArraysInstancedBaseInstanceWEBGL
1> [00:00:07.8691772] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glReadBuffer
1> [00:00:07.8691808] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glMultiDrawElementsInstancedBaseVertexBaseInstanceWEBGL
1> [00:00:07.8692075] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glMultiDrawArraysInstancedBaseInstanceWEBGL
1> [00:00:07.8692132] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glVertexAttribIPointer
1> [00:00:07.8692161] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glTexStorage2D
1> [00:00:07.8692187] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glDrawRangeElements
1> [00:00:07.8692415] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glRenderbufferStorageMultisample
1> [00:00:07.8692476] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glBlitFramebuffer
1> [00:00:07.8692504] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glDeleteSync
1> [00:00:07.8692529] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glCopyBufferSubData
1> [00:00:07.8692743] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glIsSync
1> [00:00:07.8692772] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glFenceSync
1> [00:00:07.8692797] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glSamplerParameteriv
1> [00:00:07.8692822] wasm-ld: error: C:/Users/thoma/.nuget/packages/skiasharp.nativeassets.webassembly/3.0.0-preview.4.1/buildTransitive/netstandard1.0/libSkiaSharp.a/3.1.34/simd,st/libSkiaSharp.a(gpu.GrGLAssembleWebGLInterfaceAutogen.o): undefined symbol: emscripten_glSamplerParameteri
So the driver message was fixed but for the missing GL Symbol I think needs to be fixed in SkiaSharp itself. (Will be fixed in the .NET 8 pull request #2927).
Current behavior
browser-wasm doesn't compile with SkiaSharp.Views.Uno.WinUI
Short Error Message:
Longer Error Message:
Expected behavior
browser-wasm compiles with SkiaSharp.Views.Uno.WinUI
How to reproduce it (as minimally and precisely as possible)
UnoApp4.zip
Workaround
None found yet
Works on UWP/WinUI
None
Environment
Uno.UI / Uno.UI.WebAssembly / Uno.UI.Skia
NuGet package version(s)
5.2.175 https://www.nuget.org/packages/SkiaSharp.Views.Uno.WinUI/3.0.0-preview.3.1
I tried the newest Uno.Sdk too and still the same error message. "Uno.Sdk": "5.4.0-dev.119"
Affected platforms
WebAssembly
IDE
Visual Studio 2022
IDE version
17.10
Relevant plugins
Resharper
Anything else we need to know?
Here I'm trying to use SkiaSharp 3.0.0-preview.3.1 the only target that does not compile yet is browser-wasm (Is currently disabled). https://github.com/Mapsui/Mapsui/pull/2603