Opened 5 weeks ago

Closed 4 weeks ago

Last modified 4 weeks ago

#71081 closed defect (fixed)

gtk4: Does not build with quartz variant when vulkan-<*>: ports are installed.

Reported by: christophecvr (christophecvr) Owned by: christophecvr (christophecvr)
Priority: Normal Milestone:
Component: ports Version: 2.10.99
Keywords: gtk4 spirv-tools vulkan Cc:
Port: gtk4 spirv-tools vulkan-*

Description

Macos 10.15,Xcode 11.5,CommandlineTools 11.5

I do have vulkan,spirv and MoltenVK installed. Gtk4 does not build with quartz variant anymore.
Relevant sections in mainlog Error:

Run-time dependency vulkan found: YES 1.3.296
Program glslc found: NO
Found CMake: /opt/local/bin/cmake (3.29.5)
<........>
gsk/gpu/shaders/meson.build:95:15: ERROR: Tried to use not-found external program in "command"

A full log can be found at /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/build/meson-logs/meson-log.txt
Command failed:  cd "/opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/gtk-4.14.3" && /opt/local/bin/meson setup --prefix=/opt/local -Dbuild-examples=false -Dbuild-tests=false -Dbuild-testsuite=false -Ddocumentation=false -Dintrospection=enabled -Dman-pages=true -Dmedia-gstreamer=disabled -Dprint-cups=disabled -Dx11-backend=false -Dmacos-backend=true /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/gtk-4.14.3 /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/build --wrap-mode=nodownload 
Exit code: 1
Error: Failed to configure gtk4: consult /opt/local/var/macports/build/_opt_mports_macports-ports_gnome_gtk4/gtk4/work/build/meson-logs/meson-log.txt
Error: Failed to configure gtk4: configure failure: command execution failed
Error: See /opt/local/var/macports/logs/_opt_mports_macports-ports_gnome_gtk4/gtk4/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port gtk4 failed

The function:

Failed function command of gsk/gpu/shaders/meson.build

starting line 65

  if (have_vulkan)
    glslc_options = [
<.......> 
lines 94 to 107
    foreach option: glslc_options
      target = custom_target(option.get(0),
                             input: shader,
                             output: option.get(0),
                             depend_files: gsk_private_gpu_include_shaders,
                             command: [
                               glslc,
                               '-std=450',
                               option.get(1),
                               '@INPUT@',
                               '-o', '@OUTPUT@'
                             ])
      gsk_private_gpu_vulkan_shaders += target
    endforeach

Change History (8)

comment:1 Changed 5 weeks ago by christophecvr (christophecvr)

I found the solution :

  • new port shaderc: that will build the glslc binary.

I took the opportunity to update and set to python 3.12 version the ports:

  • spirv-tools and spirv headers.
  • vulkan-<all> ports
  • glslang

The spirv-tools port has also a small change concerning the FIXME routine used to work around the multiple download sources issue : The main module is not extracted into wrksrcdir when using multiple download sources.

The gslangport has a extra option -DENABLE_HLS=ON (required for sharderc).

I prepared already everything in a git branch called shaderc to create a pull request with 4 commits:

https://github.com/christophecvr/macports-ports/commits/shaderc/

Commits:

  • spirv-tools: spirv-headers: upgrade to tag 1.3.296.0
  • glslang: update to tag version 1.3.296.0
  • vulkan-<all>: update to tag 1.3.296.0
  • shaderc: New port to build shaderc which includes glslc binary.

@judaew

Can you check if all is alright with those updates before i create the pull request?

Full source build of all is performed.
lint checks done
runtime check with gtk4 build +quartz with vulkan installed does now work perfect.

comment:2 Changed 5 weeks ago by christophecvr (christophecvr)

Port: gtk4 added
Version: 2.10.99

comment:3 Changed 5 weeks ago by christophecvr (christophecvr)

Port: spirv-tools vulkan-* added

comment:4 Changed 4 weeks ago by christophecvr (christophecvr)

pull request is send and checks have passed.

https://github.com/macports/macports-ports/pull/26197

Last edited 4 weeks ago by christophecvr (christophecvr) (previous) (diff)

comment:5 Changed 4 weeks ago by christophecvr (christophecvr)

In 675ff79b8ac60918010587d4750c97dee53add59/macports-ports (master):

spirv-headers: spirv-tools update to 1.3.296.0

See: #71081
set to python version 3.12

comment:6 Changed 4 weeks ago by christophecvr (christophecvr)

In ccbaab41920d2cfed5a4f3b61399c93d50cd88cc/macports-ports (master):

glslang: update to 1.3.296.0

See: #71081
Set python to version 3.12
Added the lates remark on:
https://github.com/KhronosGroup/glslang/pull/3371
to patchfile.

comment:7 Changed 4 weeks ago by christophecvr (christophecvr)

Owner: set to christophecvr
Resolution: fixed
Status: newclosed

In 3768ad2fccc3758c6d442d4a4d8247ba9d74cba4/macports-ports (master):

shaderc: New Port. Adds glslc binary

Closes: #71081

comment:8 Changed 4 weeks ago by christophecvr (christophecvr)

In 583062b528785792428af5780df9f00c458807a9/macports-ports (master):

vulkan-<all>: update to 1.3.296.0

See: #71081
Set used python to version 3.12
Fixed some build problems very long hang during configure off:
port:vulkan-loader

Note: See TracTickets for help on using tickets.