gfx-rs / portability

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

Issue running triangle and gears demos from VKD3D library.. #153

Open oscarbg opened 6 years ago

oscarbg commented 6 years ago

Hi, Ok was not last issue.. I checked VKD3D library demos:

with MoltenVK they work (both gears & triangle) although they output log like this:

./gears
err:vkd3d_check_extensions: Required device extension "VK_KHR_maintenance1" is not supported.
err:vkd3d_check_extensions: Required device extension "VK_KHR_shader_draw_parameters" is not supported.
[***MoltenVK ERROR***] VK_ERROR_EXTENSION_NOT_PRESENT: Vulkan extension VK_KHR_maintenance1 is not supported.
[***MoltenVK ERROR***] VK_ERROR_EXTENSION_NOT_PRESENT: Vulkan extension VK_KHR_shader_draw_parameters is not supported.
fixme:d3d12_root_signature_init: Ignoring root signature flags 0x3d.

interestingly I test on both 10.13.6 and 10.14 Mojave beta 5 or 6 and gears render ok on both versions altough triangle only renders correctly on 10.13.6 on 10.14 beta I get black screen and no further errors from console..

with portability I get: ./triangle

fixme:vkd3d_create_vk_device: Could not find a suitable queue family for a copy command queue.
Apple crash:
Assertion failed: (SUCCEEDED(hr)), function cxt_load_pipeline, file demos/triangle.c, line 187.
Abort trap: 6

./gears

fixme:vkd3d_create_vk_device: Could not find a suitable queue family for a copy command queue.
Apple crash:
Assertion failed: (SUCCEEDED(hr)), function cxg_load_pipeline, file demos/gears.c, line 331.

so wanting to test with portability once it plays ok with these samples to see if it's a Metal AMD driver in 10.14 beta..

I'm attaching a repro below so you can test without compiling vkd3d (as I believe samples were removed from original patches reason having ObjC code)..

binaries expect libraries /usr/local/lib/libvkd3d.1.dylib (compatibility version 2.0.0, current version 2.0.0) /usr/local/lib/libvkd3d-utils.1.dylib (compatibility version 2.0.0, current version 2.0.0) for @rpath/libMoltenVK.dylib I copy your portability library to /usr/lib/libMoltenVK.dylib where it finds them..

oscarbg commented 6 years ago

Binaries here: reprovkd3d.zip

kvark commented 6 years ago

Thank you!

Could not find a suitable queue family for a copy command queue.

This is a pretty strange thing to break on, tbh. We expose a single queue and it can do everything. I may even suggest this to be VKD3D bug, since we don't explicitly say the queue supports TRANSFER but this is implied by Vulkan spec itself, so VKD3D may have this condition missing.

kvark commented 6 years ago

I tried building vkd3d an encountered a few issues:

What is the best place to file issues for them?

oscarbg commented 6 years ago

Hi, 1) I build with MoltenVK so didn't encounter this issue.. 2) yep as said demos using NSView were dropped but you can find here: https://www.winehq.org/pipermail/wine-devel/2018-August/thread.html https://www.winehq.org/pipermail/wine-devel/2018-August/130142.html [PATCH vkd3d 3/3] Add support for MoltenVK on Mac OS. https://www.winehq.org/pipermail/wine-devel/2018-August/130142.html 3) guess is the mailing list were this patches are posted.. https://www.winehq.org/mailman/listinfo/wine-devel

El mié., 29 ago. 2018 a las 3:27, Dzmitry Malyshau (< notifications@github.com>) escribió:

I tried building vkd3d an encountered a few issues:

  • symlinking libvulkan.dylib -> libportability.dylib doesn't let the configure script realize it's there, since the checks are for the actually linked path, which is (on my machine) portability/target/debug/deps/libportability.dylib. I suspect you might have replaced libMoltenVK with libportability after building VKD3D, so you didn't encounter this
  • enabling demos requires libxcb. I don't have X installed, and I thought I'd never have to. Any reason VKD3D can't use NSView and such for the demos?

What is the best place to file issues for them?

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/gfx-rs/portability/issues/153#issuecomment-416792608, or mute the thread https://github.com/notifications/unsubscribe-auth/AAo2eSrd8dMajN3RCZpxw7ZTCwEAnYpHks5uVe4cgaJpZM4WQR0Y .

oscarbg commented 6 years ago

Hi @kvark forgot to say once you build wine with vulkan support and also vkd3d you may want to try also building wine with vkd3d (which requires vulkan also) for Mac.. For Linux I built without problem —enable-vulkan —enable-vkd3d but for Mac I had problems and not were easy to solve ( not about failing to locate related headers & libs).. but that was a month ago perhaps things have improved.. so please drop a line here if you try & have success enabling vkd3d for wine on Mac..

kvark commented 6 years ago

yep as said demos using NSView were dropped but you can find here

ugh, this is just sad. The code needs more polish, and it's already got quite behind master, so untrivial to merge. The worst part is - the code uses MVK specific extension (non-WSI one) for things like extracting MTLDevice from a physical device, so we aren't going to be compatible with this at all.