はなちるのマイノート

Unityをメインとした技術ブログ。自分らしくまったりやっていきたいと思いますー!

【Unity】「Ignoring depth surface load action as it is memoryless」というエラーについて(Mac &MetalでScreenCapture.CaptureScreenshotを利用すると発生)

はじめに

Ignoring depth surface load action as it is memorylessというエラーについて備忘録の意味合いも兼ねて書き残しておきたいと思います。

Ignoring depth surface load action as it is memoryless

エラーが出ている様子

概要

どうやらMacOSかつMetal Graphic APIを利用しているときに出ているっぽいです。

I have found out that this warning is happening only on Mac and with Graphic API sets for Metal (Project Setting / Player / Other Settings ). Using OpenGLCore as Graphic API is prevent the warning when making scrrenshots in game. Unfortunately it is crashing whole system instead on a random occasion when I am in editor mode. So this is not solution for me.

この警告はMac上で、Graphic APIをMetalに設定した場合(Project Setting / Player / Other Settings)にのみ発生することがわかりました。グラフィックAPIとしてOpenGLCoreを使用することで、ゲーム内でスクレンショットを作成する際に警告が出るのを防ぐことができます。残念なことに、エディターモードにしていると、不定期にシステム全体がクラッシュしてしまいます。ですから、これは私にとっては解決策ではありません。

c# - Unity Warning: Ignoring depth surface load action as it is memoryless - Stack Overflow

基本無視して良いとのことですが、一応MetalからOpenGLで描画すれば警告は消えるとのことです。

ProjectSettingsのPlayer/OtherSettings/Graphics APIs for MacにOpenGL Coreを追加して上に設定する

ただしApple SilliconだとOpenGLに設定はできないっぽいですね。