Skip to content

Internal Compiler error (argument of incompatible type) when using Buffer as a buffer name #7921

@sawickiap

Description

@sawickiap

Description
Following simple compute shader fails to compile:

RWByteAddressBuffer Buffer : register(u0);
[numthreads(1, 1, 1)]
void mainCS(uint3 dtid: SV_DispatchThreadID) {
    uint value = Buffer.Load(123);
}

Steps to Reproduce
Compile the shader with command line:

dxc.exe -T cs_6_0 -E mainCS -Fo MyCS.dxil MyCS.hlsl

Actual Behavior

Internal Compiler error: llvm::cast<X>() argument of incompatible type!

Changing the name of the buffer to something else like Buffer solves the problem.

I understand that I shouldn't use word Buffer for the name of my buffer, but I suggest outputting some more descriptive error message, communicating more directly what is wrong about the shader code.

Environment

  • DXC version: dxcompiler.dll: 1.8 - 1.8.2502.11 (239921522); dxil.dll: 1.8(1.8.2502.11), as bundled in Windows SDK 10.0.26100.0.
  • Host Operating System: Windows 11 x86-64 25H2 (OS Build 26200.7171)

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug, regression, crashneeds-triageAwaiting triage

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions