Does Vulkan require SMP?
  • Order of the Butterfly
    Order of the Butterfly
    Samurai_Crow
    Posts: 161 from 2009/12/10
    From: Minnesota, USA
    As the title says: Does Vulkan require symmetric multiprocessing and a multithreaded kernel to be practical?
  • »16.07.24 - 06:04
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    ernsteiswuerfel
    Posts: 556 from 2015/6/18
    From: Funeralopolis
    A theoretically interesting question! ;-) But I doubt anyone has investigated this.

    But you could try yourself:
    1. Boot yer Linux with nr_cpus=1 (edit kernel command line parameters in /etc/defaults/grub and run grub-update afterwards)
    2. Run some Vulkan benchmarks
    3. Adjust nr_cpus= again to 2, 3, 4, etc. and re-run Vulkan benchmarks until you hit nr_cpus=x where x is the max threads your cpu can handle.
    4. then you got some nice data points to check if/how much Vulkan performance scales with thread count.

    For AMD cards you have Vulkan support starting from GCNv1, for NVIDIA cards Open Source driver Vulkan this is still in Beta (I think) and regarding Intel Cards I don't know whether/to what extent they support Vulkan currently.
    Talos II. [Gentoo Linux] | PMac G5 11,2. PMac G4 3,6. PBook G4 5,8. [MorphOS 3.18 / Gentoo Linux] | A600GS
  • »16.07.24 - 11:22
    Profile
  • MorphOS Developer
    jacadcaps
    Posts: 3108 from 2003/3/5
    From: Canada
    No reason it would. But any modern-ish game using it would for sure, since those are written for 6-7 cores these days.
  • »16.07.24 - 18:08
    Profile Visit Website
  • Order of the Butterfly
    Order of the Butterfly
    Samurai_Crow
    Posts: 161 from 2009/12/10
    From: Minnesota, USA
    The reason I was asking was that mainstream web browsers have open-source backward compatibility shims for running WebGL on systems whose drivers are low-level and capable of running WebGPU. WebGL is comparable to OpenGL-ES 2 or 3 and WebGPU is comparable to Apple's Metal GPU support but can also work under Vulkan instead.

    This leads to the question of whether TinyGL needs to take a back seat to a faster, low-level driver protocol such as LavaPipe (Mesa's Vulkan software renderer) if dependencies can be met.
  • »17.07.24 - 04:27
    Profile
  • Yokemate of Keyboards
    Yokemate of Keyboards
    Andreas_Wolf
    Posts: 12150 from 2003/5/22
    From: Germany
    > regarding Intel Cards I don't know whether/to what extent they
    > support Vulkan currently.

    According to Wikipedia, Vulkan support on Linux is there for all Intel GPUs released since 2012 (except GMA).
  • »17.07.24 - 08:51
    Profile
  • Just looking around
    Posts: 12 from 2024/7/11
    My status of knowledge is that the huge problem with Vulkan is that it uses some sort of binary blobs (the person who explained this to me really knows this 3D HW stuff) and uses them in a way that it is not possible to know if Byteswapping is needed or not.

    Exactly he told me that GLES uses buffer descriptors to be able to do Endian Conversion but that Vulkan had no Buffer descriptors in Binary Blobs and assumes that the buffers can be transferred without any conversion. This makes it sound to me like Vulkan is no option either to OS4 or MOS. GLES on the other hand does not have this problem.

    His summary was that Vulkan is useless for Big Endian architectures.

    Don't know that WebGPU stuff.
  • »17.07.24 - 13:55
    Profile
  • Priest of the Order of the Butterfly
    Priest of the Order of the Butterfly
    polluks
    Posts: 803 from 2007/10/23
    From: Gelsenkirchen,...
    Some info about Vulkan's endianness.
    Pegasos II G4: MorphOS 3.9, Zalman M220W · iMac G5 12,1 17", MorphOS 3.18
    Power Mac G3: OSX 10.3 · PowerBook 5,8: OSX 10.5, MorphOS 3.18
  • »17.07.24 - 17:07
    Profile
  • Order of the Butterfly
    Order of the Butterfly
    Samurai_Crow
    Posts: 161 from 2009/12/10
    From: Minnesota, USA
    Re:WebGL on WebGPU
    Chrome's GLES compatibility layer for Vulkan, Metal and DirectX is available at https://chromium.googlesource.com/angle/angle. Mesa also has a backward compatibility layer for LavaPipe but I don't remember what it's called.

    Going from a low-level API to high-level is much harder than going the other way. OS 4.1's Warp3D Nova is a thin wrapper around SPIR-V shader API (or so I've heard) and has a GLES 2 layer that comes with it.

    Of course Google wouldn't bother hosting a Warp3D Nova implementation of WebGPU but having a low-level API of some sort delivers better results on some configurations.

    This thread is starting to converge with the other one about Warp3D Nova so I'll leave this as is.
  • »19.07.24 - 03:24
    Profile