Commit fdbd648881d71177cd26baa3428134310383ccc0

Maksim Sisov 2023-04-12T14:02:44

metal: allow unequal size attachments. OpenGLES3.0 allows FBO with attachments that have unequal size. In Metal, an FBO is represented by a render pass pipeline, which is created using MTLRenderPassDescriptor descriptor. The render pass can have color attachments as well as depth and stencil attachments. Those individual attachments must have a texture attached, which works as a buffer. However, the documentation does not specify any dimension restrictions for those textures. Test: verify the FramebufferTest_ES3.AttachmentsWithUnequalDimensions passes. Test2: made a simple metal app that renders using an offscreen render pass pipeline to a texture that has size of 32x16 with a depth buffer attached (size of 16x32) and verified the pixels on that. The content outside the common area had undefined pixel data. Bug: angleproject:7994, angleproject:6447 Change-Id: I257f8e3aad497772cfc7de08314818ee5f434b84 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4418266 Commit-Queue: Yuly Novikov <ynovikov@chromium.org> Reviewed-by: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Kenneth Russell <kbr@chromium.org>