Page MenuHomeFreeBSD

devel/vulkan-tools: enable Wayland support
ClosedPublic

Authored by jbeich on May 13 2020, 11:56 PM.

Details

Summary

vulkaninfo currently doesn't show what VK_KHR_wayland_surface supports.

  • libXrandr doesn't appear to be used, so drop it
  • Disabling XLIB requires explicit include(CheckLibraryExists)
Test Plan
  • 11.3 i386 is OK
  • WAYLAND only is OK (bug 246199)
  • XCB only is OK
  • XLIB only is OK
  • WAYLAND + XCB + XLIB is OK (default)
  • XCB + XLIB is OK (previous)

In WAYLAND-only mode vulkaninfo works fine but not vkcube:

$ make install WITHOUT="XCB XLIB"
$ readelf -d $(which vkcube) | fgrep NEEDED
 0x0000000000000001 (NEEDED)             Shared library: [libwayland-client.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.5]
 0x0000000000000001 (NEEDED)             Shared library: [libvulkan.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [librt.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.7]

$ vkcube
Segmentation fault
* thread #1, name = 'vkcube', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
    frame #0: 0x00000008002615a3 libwayland-client.so.0`wl_proxy_marshal_constructor(proxy=0x0000000000000000, opcode=0, interface=0x0000000000214fe8) at wayland-client.c:830:41
   827          va_list ap;
   828
   829          va_start(ap, interface);
-> 830          wl_argument_from_va_list(proxy->object.interface->methods[opcode].signature,
   831                                   args, WL_CLOSURE_MAX_ARGS, ap);
   832          va_end(ap);
   833
(lldb) bt
* thread #1, name = 'vkcube', stop reason = signal SIGSEGV: invalid address (fault address: 0x0)
  * frame #0: 0x00000008002615a3 libwayland-client.so.0`wl_proxy_marshal_constructor(proxy=0x0000000000000000, opcode=0, interface=0x0000000000214fe8) at wayland-client.c:830:41
    frame #1: 0x000000000020e812 vkcube`wl_shell_get_shell_surface(wl_shell=0x0000000000000000, surface=0x0000000800a228b0) at wayland-client-protocol.h:2926:7
    frame #2: 0x000000000020a483 vkcube`demo_create_window(demo=0x00007fffffffd2d0) at cube.c:2724:27
    frame #3: 0x0000000000209e82 vkcube`main(argc=1, argv=0x00007fffffffe080) at cube.c:3965:5
    frame #4: 0x00000000002075ff vkcube`_start(ap=<unavailable>, cleanup=<unavailable>) at crt1.c:76:7

Diff Detail

Repository
rP FreeBSD ports repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

jbeich created this revision.
jbeich edited the test plan for this revision. (Show Details)
This revision is now accepted and ready to land.May 14 2020, 9:42 AM
This revision was automatically updated to reflect the committed changes.