재미있는 내용은 아닌데 프로파일링 관련한 몇가지 내용입니다.
-----------------------------
검색용 키워드
Render.OPagueGeometry
Render.ForwardOpague.Render
Clear
Render.TransparentGeometry
RenderForwardAlpha.Render
RenderForward.RenderLoopJob
BatchRender.Flush
SpriteRender.Render.Multiple
Semaphore.Waitforsignal
--------------------------------
프로파일링 중 위의 키워드 들이 들어간 상황에서 GPU가 힘들어 하는 상황에 대한 내용입니다.
키워드 들을 같이 나열한 이유는 구글링용 입니다.

우선 문제가 되는 프로파일링 내용입니다.
사실 이거 찾느라 고생한 이유가 잘 몰랐던 2가지가 원인인데
첫 번째, 위의 키워드들은 프레임 디버거에서 확인이 가능하다는 점.
두 번째, 빌드 옵션 중 프로파일링 옵션을 활성화 했을 때 프레임 디버거까지 확인 가능하다는 점.
이 두 가지 사실만 이해하고 있으면 나머지 해결은 좀 더 간단해집니다.

프레임 디버거 내용을 확인하시면 위의 키워드와 같은 부분을 확인 하실 수 있습니다.

[Why this draw call can't be batched with the previous one]
Objects have different materials.
그리고 배칭시 한 번의 콜로 묶이지 못한 이유가 있는 작업은 위와 같이 왜 묶이지 못하였는지 이유를 같이 확인 할 수 있습니다.
저의 경우 원인이 마스크 처리된 오브젝트를 배칭으로 배치하였을 때
같은 아틀라스라 하더라도, 배칭으로 묶여 있더라 하더라도 이를 모두 다른 콜로 처리하는 부분이 원인 이였네요.
아무쪼록 위의 2가지만 잘 기억하신다면 다른 그래픽 처리 관련 메시지가 나올 경우에도 큰 걱정 없이 처리하실 수 있겠네요.
------------------------------------------------
만약 맥에서 작업 중 GPU가 프로파일링 안 되실 경우 아래 링크를 참조하세요.
https://gamecodi.com/912/gpu-profiling-is-currently-not-supported-when-using-metal
------------------------------------------------

추가 : 위와 같은 상황에서 CPU 쪽 프로파일링에서는 semaphore.waitforsignal 이라는 내용을 같이 목격할 가능성이 크다고 봅니다.
이는 CPU가 GPU의 작업이 끝나는 걸 대기하는 케이스라고 보시면 됩니다.

이는 구글링 시 CPU와 GPU의 작업을 싱크 시켜주는 Project Settings -> Quality -> Vsync 부분을
해제하여 주면 된다고 하는데 소폭의 성능 향상은 확인 하였지만 완전한 해결은 보지 못하였습니다.
결국 주원인인 GPU 쪽의 병목을 해결하는 게 맞다고 생각됩니다.