This works by wrapping the entry point call inside a `main` function. Since resources are still defined in global space, function accessing these are marked with a custom attribute. This custom attribute expands in a `#ifdef` guard for the matching stage. This is a temporary solution and will eventually be lifted once we support SRD. ### TODO - [ ] Implement `[[gpu::vertex/fragment_function]]`. Pull Request: https://projects.blender.org/blender/blender/pulls/139233