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

Lint
No Linters Available
Unit
No Unit Test Coverage
Build Status
Buildable 31072
Build 28769: arc lint + arc unit

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.