Skip to content

Fix the Vulkan Renderer #96

Open
Open
@dGr8LookinSparky

Description

@dGr8LookinSparky

Recently I found out that someone implemented a vulkan based renderer for ioquake3 ( https://github.com/suijingfeng/vkQuake3 ). In addition someone made a post about it in the ioquake forums stating that they got it working on macos ( https://discourse.ioquake.org/t/first-shots-of-vkquake3-running-on-metal/1249 ). I did some research on the googles, and it does look like there is now foss support for running vulkan on macos 10.11 and above, so hypothetically we should be able to have a working vulkan based renderer on this engine for all of the platforms we are currently supported.

I figured that porting vkQuake3's vulkan renderer to this project would be relatively straight forward to do just to see what it's like. It was a bit less straightforward to do than I initially thought, especially due to this engine making use of C++, and vkQuake3 still being in C, but I did get it to a "somewhat working condition" with a static library build at least on Linux. The Dynamic Library build is broken (probably a makefile issue), a lot of the advanced features need to be implemented/enabled/fixed, and there are some obvious glitches/bugs I noticed on some of the maps I tried it on, but on the most part for at least many old trem maps, it does look better than even renderer2, and at least the fog is done better than the other renderers as well.

Once fixed up, it looks like this vulkan render has potential to be a better renderer than this engine's current renderer2, in terms of both visuals and hypothetically performance.

Others are welcome and encouraged to work on this, I don't know when I'll be getting back to work on this, but what I did so far with it is publicly available here, currently on the vulkan branch:

https://github.com/GrangerHub/tremulous/commits/vulkan

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions