rt64 icon indicating copy to clipboard operation
rt64 copied to clipboard

[Feature Request]: Vulkan 1.1 support

Open theofficialgman opened this issue 1 year ago • 6 comments
trafficstars

pretty much as the title said. Vulkan 1.1 minimum requirements would be much appreciated over the minimum Vulkan 1.2 requirements (eg: no VK_EXT_scalar_block_layout requirement).

theofficialgman avatar May 20 '24 03:05 theofficialgman

Scalar block layout is required to do clean interoperation with the C++ headers, but there might be ways to automate that.

Can you gather which other requirements might need to be dropped? There's some features that are pretty integral to the renderer.

And out of curiosity, what hardware are you targetting that needs this version?

DarioSamo avatar May 20 '24 15:05 DarioSamo

The hardware in question is the Nvidia Jetson hardware (including the Nintendo Switch) on the 32.3.1 BSP version. While newer (last BSP version 32.7.4 released June 2023) has Vulkan 1.2 and can run this, there are many driver bugs in this version that Nvidia never fixed (broken vsync, so tearing in all output modes, crashes in Chromium, worse performance, etc). So the best BSP version is 32.3.1 which only has Vulkan 1.1. You can find my device report for it here https://vulkan.gpuinfo.org/displayreport.php?id=15757 vulkaninfo.txt

theofficialgman avatar May 20 '24 16:05 theofficialgman

Thanks, I've checked the report and bindless is supported. I think all you'd need to do is drop the requirement for scalar block layout.

This is not a priority at the moment but perhaps you can sort it out by yourself by adjusting anything in the shared directory to work correctly without that. This folder shares headers between C++ and HLSL. To make matters simple for interop, we basically use the extension to guarantee the CPU side and the shader-visible structure remain the same. If the changes are not too invasive I don't mind having them. You'll also need to drop the argument to use scalar layout on the shader compiler.

DarioSamo avatar May 20 '24 18:05 DarioSamo

To add to this, there is also hardware where VK_EXT_scalar_block_layout can't be implemented due to architectural limitations (eg: Broadcom VIDEOCORE like used in the Raspberry Pi family of computers).

theofficialgman avatar May 24 '24 16:05 theofficialgman

This could also be useful for Rockchip devices.

eaglewin64 avatar May 29 '24 05:05 eaglewin64

Linking the documentation from dxc about the memory layouts for my future reference (and anyone else) in the future https://github.com/Microsoft/DirectXShaderCompiler/blob/main/docs/SPIR-V.rst#memory-layout-rules

theofficialgman avatar Apr 01 '25 03:04 theofficialgman