cormac-obrien / richter

A modern Quake engine.
http://c-obrien.org/richter/
MIT License
533 stars 33 forks source link

Problem with max_push_constant_size at 256 with my vulkan device #47

Open CatCode79 opened 3 years ago

CatCode79 commented 3 years ago

Hi, I'm trying to upgrade Richter to wgpu 0.11 version. (by the way, congratulations on the name of the project, it took me a while to understand it but then it made me smile).

You can find my efforts here: https://github.com/CatCode79/richter

the problem is that my device, using vulkan api, only supports up to 128 bytes of push constants, while Richter uses up to 256 bytes: a Matrix4x4 (so 128 bytes) + other values ​​sometime.

For me who do not know the code it is not trivial to solve this thing. The limits per vulkan for that variable are a minimum of 128 in the official documentation.

Here the line: https://github.com/cormac-obrien/richter/blob/506504d5f9f93dab807e61ba3cad1a27d6d5a707/src/bin/quake-client/main.rs#L125

Is there a chance the code could support the 128 byte limit or will it stay that way?

Thanks for your project: I like it a lot! bye!

ethereumdegen commented 2 years ago

I am working on a fork that uses fewer push constants to support a wider range of graphics hardware. I got it to boot a demo file on my linux laptop with intel mesa integrated gfx recently. https://github.com/antiquake-rs

CatCode79 commented 2 years ago

cool!