KhronosGroup / Vulkan-Docs

The Vulkan API Specification and related tools
Other
2.7k stars 452 forks source link

Some questions on VK_AMDX_shader_enqueue extension.. #2336

Open oscarbg opened 3 months ago

oscarbg commented 3 months ago

[VK_AMDX_shader_enqueue] @tobski some questions on this exciting VK_AMDX_shader_enqueue extension:

1) at first sight, seeing the spec, seemed no GLSL support so no glslang support but now from sample I see ext is supported in shading languages (both GLSL and HLSL) via GL_EXT_spirv_intrinsics ext so both glslang and DXC are supported.. question is if stable spec is planned to include a GLSL EXT? (GL_AMD_shader_enqueue?) (and of course glslang support) or will remain using GL_EXT_spirv_intrinsics..

2) Seeing new D3D12 work graphs going stable and AMD demoing "mesh nodes" which support mesh shaders as leaf nodes of work graphs.. does this extension support "mesh nodes" already? seems not as it mentions:

Shaders in pStages must be in the GLCompute execution model

but anyway also seen:

For compute nodes, can the input payload be modified?

https://github.com/KhronosGroup/Vulkan-Docs/blob/main/proposals/VK_AMDX_shader_enqueue.adoc#41-resolved-for-compute-nodes-can-the-input-payload-be-modified-if-so-what-sees-that-modification so clearly graphics nodes are in mind also..

D3D12 mesh nodes are coming this year seems.. so hoping also to a revision of AMDX ext, supporting mesh shader nodes in the same time? which brings to next question..

3) can share 8 months since release how far approx. EXT is from becoming stable (either as AMD,EXT or KHR)?

thanks..

Tobski commented 3 months ago

Hi Oscar,

  1. There's currently no plans for a GLSL extension; we're focussed on HLSL as the machinery for work graphs is already being developed there.
  2. The current iteration only supports compute, originally we had intended to support draw nodes as in the early DX spec, but they have, for now, been omitted.
  3. I cannot provide any timeframes for a stable spec, but we are still actively developing it.
oscarbg commented 3 months ago

many thanks @Tobski for answering!! only comment remaining in my mind is, if focused on HLSL suuport only, hope by final release, AMD can submit DXC support for generating SPIR-V (using SPV_AMD_shader_enqueue) from "standard DX12 HLSL work graphs shaders" using only the "-spirv" DXC flag and not needing the current EXT_spirv_intrinsics extension mechanism..

oscarbg commented 2 months ago

just some discussion about AMD driver support.. @Tobski can comment? my findings are: 1)NO Linux support currently neither in "open source" amdvlk driver (https://github.com/GPUOpen-Drivers/AMDVLK) nor "closed source" Vulkan driver (https://www.amd.com/en/resources/support-articles/release-notes/RN-AMDGPU-UNIFIED-LINUX-23-40-2.html): sad, as one advantage of VK vs D3D12 is Linux support but right now testing must be done on Windows.. is that about to change in the experimental extension phase (AMDX) or will not be exposed on Linux drivers until extension gets stable(AMD, EXT or KHR)..

2) seems on Windows is only supported on the initial preview driver.. seeing vulkaninfo VK_AMDX_shader_enqueue reports only llvmpipe: https://vulkan.gpuinfo.org/listdevicescoverage.php?platform=linux&extension=VK_AMDX_shader_enqueue and seeing many RDNA3 Windows reports with new drivers like 24.4.1 etc.. means no shipping on current AMD Windows drivers.. this is sad also.. as would be nice even if alpha quality the extension to be on standard upstream Windows drivers to get additional Vulkan extensions added after initial driver in July 23 (after all AMDX means is an experimental extension so no products are expected to ship).. thanks..

Tobski commented 2 months ago

Hi @oscarbg, to answer both questions at once: We provided a single preview driver, and I would expect in the future that we ship further drivers with updated support; but I can't comment on how or when that might happen.