Skip to content

Add wgpu graphics server #721

Open
Open

Description

@mrDIMAS

Fyrox now supports custom graphics servers, which essentially is a tiny abstraction layer from graphics API. Currently there's only one graphics server, based on OpenGL 3.3/OpenGL ES 3.0. wgpu looks like a very good cross-platform replacement for OpenGL and it is definitely worth implementing a graphics server with it.

Activity

  1. Muktarsadiq commented on Nov 10, 2025

    @Muktarsadiq

    Hi! I'd like to work on implementing the wgpu graphics server. This seems like a great fit since you've already built the abstraction layer for this purpose.

    Before I start, could you help me with a few things?

    1. Where can I find the GraphicsServer trait/interface? I want to study the OpenGL implementation as a reference.

    2. What's the minimum feature set for an initial PR? I'm thinking: basic rendering → textures/lighting → advanced features. Does an incremental approach work, or would you prefer one comprehensive PR?

    3. Any known gotchas with the abstraction that might be tricky when mapping to wgpu's API?

    4. Shader handling: Will I need to port shaders from GLSL to WGSL, or is there an abstraction?

  2. b-guild commented on Nov 11, 2025

    @b-guild
    Contributor

    Where can I find the GraphicsServer trait/interface?

    pub trait GraphicsServer: GraphicsServerAsAny {

  3. nice0hack commented on Jul 26, 2026

    @nice0hack
    Contributor

    Since no one has yet submitted a PR for wgpu integration, I'll continue the issue. The integration itself is very complex due to fundamental differences between OpenGL and wgpu concepts.

    There's already a PR where you can run the engine on a raw wgpu implementation: #927

    The implementation is raw, but the wgpu engine is ready for a first look.

    This issue definitely needs to be addressed by the entire Fyrox Engine community, and the engine should gradually be fully migrated to wgpu. My tests show that wgpu is indeed a good replacement for OpenGL.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestgood first issueGood for newcomersgraphicsanything graphics- and rendering-related

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions