gfx-rs / portability

Vulkan Portability Implementation
Mozilla Public License 2.0
384 stars 25 forks source link

[meta] Application testing #125

Open kvark opened 6 years ago

kvark commented 6 years ago
alexey-lysiuk commented 5 years ago

Could you please give some details about 'minor tweak to WSI' for GZDoom mentioned on 0.7 release notes? I guess the minimum set of changes is this one.

The thing is I've got VK_ERROR_SURFACE_LOST_KHR from vkQueuePresentKHR() almost every time on launch or after starting a new game. Sometimes, like in 20 to 30% of attempts, everything works fine. Just of curiosity, did you experience something similar? Probably, I can even debug Portability, although I'm not familiar with Rust at all. Are you using CLion with Rust plug-in?

I would like to use Portability with GZDoom for testing and benchmarking purposes. Two Vulkan implementations are better than one anyway.

By the way, the source port is called GZDoom, not gzDoom.

kvark commented 5 years ago

@alexey-lysiuk hi! I wanted to file an issue but your github project doesn't enable issues. Would be best to have this discussion in a more specific place than our meta-issue...

Looks like you figured this out:

MoltenVK allows passing a layer, although Vulkan specs prohibit this

Basically, it's an undocumented behavior of MoltenVK implementation of the "VK_MVK_macos_surface" extension. We understand the reason why it's there, but we don't want to implement undocumented behaviors. Instead, we developed a portability-agnostic extension that would work for both us and MoltenVK and is documented properly: EXT_metal_surface. gfx-portability supports this extension since v0.6 release. MoltenVK should have it in the latest release, they implemented support about a month ago, see https://github.com/KhronosGroup/MoltenVK/issues/653

The thing is I've got VK_ERROR_SURFACE_LOST_KHR from vkQueuePresentKHR() almost every time on launch or after starting a new game. Sometimes, like in 20 to 30% of attempts, everything works fine.

I haven't seen it, although:

Probably, I can even debug Portability, although I'm not familiar with Rust at all. Are you using CLion with Rust plug-in?

People have different setups. I just use Sublime Text 3 with Rust Enhanced plugin.

I would like to use Portability with GZDoom for testing and benchmarking purposes. Two Vulkan implementations are better than one anyway.

This is great, thank you! We keep our hopes up when talking about benchmarks :) We just need to find a better place to communicate: this meta-issue is high level for our topic. There is a gitter room, for example. Alternatively, you can just create issues in this project (as opposed to continuing here).

grovesNL commented 3 years ago

Looks like DuckStation attempted to run with portability on macOS https://github.com/stenzek/duckstation/issues/555#issuecomment-648252921