Skip to content
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

Add support for VK_EXT_transform_feedback #1588

Open
italomandara opened this issue May 7, 2022 · 8 comments
Open

Add support for VK_EXT_transform_feedback #1588

italomandara opened this issue May 7, 2022 · 8 comments

Comments

@italomandara
Copy link
Contributor

Similar issue to #1524
The most popular 3d engines, UE4 to mention one, use geometry shaders and transform feedback which is used basically in the majority of modern windows 3d applications

It seems there's possibility to recreate (polyfill) transform feedback with metal even if metal doesn't have any api support for that, here's what apple suggests:
https://developer.apple.com/forums/thread/21104

This along with geometry shaders support will dramatically improve compatibility with modern 3D applications.

@italomandara
Copy link
Contributor Author

italomandara commented Jun 8, 2022

Looks like someone looked into it a long ago https://stackoverflow.com/questions/35750397/metal-write-to-buffer-from-vertex-function

it seems like the compute command encoder solution is the way to go?

@italomandara italomandara changed the title No Transform feedback? Support VK_EXT_transform_feedback Jun 8, 2022
@italomandara italomandara changed the title Support VK_EXT_transform_feedback Add support for VK_EXT_transform_feedback Jun 9, 2022
@italomandara
Copy link
Contributor Author

italomandara commented Jun 16, 2022

Also if the aim is to wait Apple to implement this in some next version I doubt this will ever happen, it would be redundant and kind of a legacy option vs compute shaders, so it would be better to map it to compute shaders somehow rather than wait forever no? 😉

@italomandara
Copy link
Contributor Author

italomandara commented Jul 25, 2022

#1657 (comment)
It's worth looking if there's hidden support in metal API as well for TF is in opengl too

@italomandara
Copy link
Contributor Author

@PekaPete
Copy link

I've mentioned this in the thread for geometry shaders. Just leaving it here in case whoever is working on this would like to check it out. Here's what the devs of Ryujinx had to say about transform feedback:

"Transform Feedback: Transform Feedback is another feature that doesn't exist on Mac, but is used by a few choice games like Xenoblade and Legends Arceus. We have a rather ingenious (but complicated) solution to this - just write the transform feedback outputs to storage buffers at the end of the vertex stage. The result is just as fast and works properly across affected titles."

Ryujinx is open source so I suppose someone with the knowhow can take a look at their implementation.

@K0bin
Copy link

K0bin commented Nov 30, 2022

just write the transform feedback outputs to storage buffers at the end of the vertex stage. The result is just as fast and works properly across affected titles."

This only works if you're not using geometry or tessellation shaders.

@billhollings
Copy link
Contributor

Ryujinx:

@IsaacMarovitz
Copy link

Here to advocate for Transform Feedback support as it's required for Unity games that use Skinned Mesh Renderers like Dyson Sphere Program and Genshin Impact

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants