filament icon indicating copy to clipboard operation
filament copied to clipboard

Corrupted rendering results on MacOS 10.15 when using Metal Backend

Open ryumiel opened this issue 1 year ago • 3 comments

Describe the bug Despite the minimum supported version of MacOS is 10.15, I found out the Filament fails to render 3D scenes With Metal backend.

Failed 3D scenes are relatively complex lighting or blendings (e.g.: gltf_instance, gltf_viewer, hellopbr..). Simple examples (e.g. animation, depthtesting...) are fine on Metal Backend.

If I use OpenGL Backend, failed case rans successfuly with expected rendered result.

To reproduce

  1. Run 'filament/out/cmake-[debug|release]/samples/gltf_viewer'

Expected behavior

  1. 'gltf_viewer' should render scenes without artifacts just like OpenGL backend

Screenshots

Logs

  • Failed with Metal Backend
~/W/f/o/c/samples ❯❯❯ ./gltf_viewer
FEngine (64 bits) created at 0x7f896e836a00 (threading is enabled)
FEngine resolved backend: Metal
Selected physical device 'Intel(R) Iris(TM) Plus Graphics 650'
Supported GPU families:
  MTLGPUFamilyCommon3
  MTLGPUFamilyMac2
Features:
  readWriteTextureSupport: true
FEngine feature level: 3
Requested linear format but KTX contains a sRGB format.
Requested linear format but KTX contains a sRGB format.
Texture Decoder has 2 background threads.
  • Render properly with OpenGL Backend
~/W/f/o/c/samples ❯❯❯ ./gltf_viewer -a opengl
FEngine (64 bits) created at 0x7fc1ee8f8000 (threading is enabled)
FEngine resolved backend: OpenGL
[Intel Inc.], [Intel(R) Iris(TM) Plus Graphics 650], [4.1 INTEL-14.7.8], [4.10]
Feature level: 1
Active workarounds:
vao_doesnt_store_element_array_buffer_binding
allow_read_only_ancillary_feedback_loop
GL_MAX_DRAW_BUFFERS = 8
GL_MAX_RENDERBUFFER_SIZE = 16384
GL_MAX_SAMPLES = 16
GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT = 16.000000
GL_MAX_UNIFORM_BLOCK_SIZE = 65536
GL_MAX_TEXTURE_IMAGE_UNITS = 16
GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT = 256
OS version: 0
FEngine feature level: 1
Requested linear format but KTX contains a sRGB format.
Requested linear format but KTX contains a sRGB format.
Texture Decoder has 2 background threads.

Desktop:

  • OS: MacOS 10.15.7
  • GPU: Intel Iris Plus Graphics 650 1536 MB
  • Backend: Metal
  • Model: MacBook Pro (13-inch, 2017, Four Thunderbolt 3 Ports)

ryumiel avatar Mar 20 '23 05:03 ryumiel

Unfortunately we've had issues with Metal on Intel GPUs for awhile now.

bejado avatar Mar 20 '23 17:03 bejado

Thanks, @bejado. Could you please provide more information about issues? I want to determine where to start to fix it or bypass it at this point.

ryumiel avatar Mar 20 '23 23:03 ryumiel

If I remember correctly, I think this had something to do with MSAA being enabled. You could try to disable it and see if that fixes anything.

bejado avatar Mar 21 '23 23:03 bejado