MRT and formats

Hello, this is more like a design choice question, I have a project that uses MRT with a serious quantity of information per pixel using two kind of rendering.
One that is the classic view of the scene and one that is a kind of overlay effect and of course they both must not overwrite the information of the other.
Of course I can play with the alpha per texture to avoid that but each texture uses 3 values and I might be pushed to create some more texture with only the first value used while losing 66% of the remaining space.
I’ve seen I can use an array to provide the type of each texture and their sampling mode but not their format.
So I’m wondering if it’s a limitation of babylon (and if there is a way to hack around it) or is it purely a webGL and unavoidable one.
Other question, is it really a problem to use up all that space carelessly performance wise (even on lower intel like gpu config) ?

I think the size should be acceptable and regarding the format, let s add @Evgeni_Popov to see if it is a webgpu limitation or not as I guess it should be all possible to mix and match in webgl even if not in Babylon at the moment ?

No, it’s not a limitation in WebGPU, we can have different formats for each render target (as long as the formats are “renderable”).

By not a limitation in WebGPU you mean that’s a limitation in WebGL?
What do you mean by “renderable” ? (or maybe examples of “not renderable”)

@Mikael, this is basically not a limitation of neither WebGPU or WebGL, only a feature we do not support on the MRT at the moment.

We would definitely be more than happy to accept a PR for it if you d be interested ?

I’d be glad to but my knowledges in WebGL are limited, I’ll see what I can do, no promises.

no problem, you could try to follow how the types have been added maybe :slight_smile:

that was what I was thinking about

1 Like