Skip to content

[SPIR-V] Requesting useless OpCapability StoragePushConstant16 when using vk::BufferPointer #8895

Description

Description
I was trying to use latest vk::BufferPointer pattern instead vk::RawBufferLoad. I only modified single shader. C++ code is the same. VVL with sync validation and GPUAV does not report any problems. Here what I got so far.

Image

I see the requirement to use OpCapability StoragePushConstant16 in SPIR-V which does not make any sense for this shader scope. ⚠️This feature is not used but forces the developer to request this feature from VkDevice. It automatically limits available devices for application and produces VVL errors. Many downsides without any benefits.

Steps to Reproduce
Compile this shaders: preprocess.zip

with DXC flags:

-HV 2021
-spirv
-fvk-use-dx-layout
-fspv-reduce-load-size
-fspv-target-env=vulkan1.1spirv1.4
-ffinite-math-only
-enable-16bit-types
-WX
-O3
-E VS
-T vs_6_10
-Fo <output.hlsl.spv>
<source.hlsl>

Expected

  • vk::BufferPointer must correctly extract uint16_t values
  • no require OpCapability StoragePushConstant16 in SPIR-V
  • no compile warnings
  • 🙏please fix this issue #8543 - it causes a lot of friction when debugging with RenderDoc/Nsight/Aftermath

Environment

  • git submodule update --init has been invoked before build
  • hctbuild build parameters: -official -rel -x64 -vs2026 -speak-up -no-dxilconv -spirv -lto
  • Visual Studio 2026 Community components were up to date.
  • Windows 11 Pro (25H2, Build 26200.9278)
  • dxc.exe v1.9.2607.10104 executable, commit SHA-1 1b949a448e4c9e821f010c488defebfbb1a50b27

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug, regression, crashneeds-triageAwaiting triagespirvWork related to SPIR-V

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions