-
-
Notifications
You must be signed in to change notification settings - Fork 64
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Multiple Render Targets support #64
Comments
Yes, unfortunately, I overlooked this Metal's limitation on older GPUs. If you want to use 4 RGBA32F render targets, you need to use Apple GPU Family 4 and later (iPhone X+). |
Actually, I took a look again, |
Are you trying to implement deferred rendering? I think traditional deferred rendering doesn't perform well on mobile GPUs. I would try to implement frame buffer fetch extension in future to allow in-tile memory version of deferred rendering as mentioned here https://community.arm.com/developer/tools-software/graphics/b/blog/posts/deferred-shading-on-mobile |
Thank you for your response! Now it is all clear to me. Just wanted to be sure. |
I am using MRT for GPU particles |
Done. |
Hi!
On the main page it says that multiple render targets are supported, but I when I tried to render to a framebuffer with 4 RGAB32F draw buffers I got this error:
-[MTLRenderPipelineDescriptorInternal validateWithDevice:]:2623: failed assertion `This set of render targets requires 64 bytes of pixel storage. This device supports 16 bytes.'
I tested it on iPad Air with Apple A7 (OS 12.4.9 (16H5)) with using OpenGL ES 3.0 on MetalANGLE.
I looked up the Metal Feature Set Table (https://developer.apple.com/metal/Metal-Feature-Set-Tables.pdf) for this chip and found out that it supports only 128bit of maximum total render target size, per pixel, when using multiple color render targets.
So I assume that it does not support natively 4 render targets with RGBA32F format, it can only handle up to 4 render targets with RGBA8 format.
As far as I know, there are no such thing as "maximum total render target size, per pixel, when using multiple color render targets" in OpenGL ES spec. So there is no way to fully support multiple render targets for all texture formats, or am I missing something?
The text was updated successfully, but these errors were encountered: