Skip to content

[SPIR-V] Follow-up to #8616: exclude entry functions from function-target decoration - #8719

Open
mmoult wants to merge 3 commits into
microsoft:mainfrom
mmoult:inline2
Open

[SPIR-V] Follow-up to #8616: exclude entry functions from function-target decoration#8719
mmoult wants to merge 3 commits into
microsoft:mainfrom
mmoult:inline2

Conversation

@mmoult

@mmoult mmoult commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

Resolve some issues raised on the last pull request. Most notably, fix the interaction between decorations on entry points and decorations on regular functions. The pre-existing test for entry points was not specific enough to catch introduced bug. This has been amended.

…nction-target decoration

Resolve some issues raised on the last pull request. Most notably, fix
the interaction between decorations on entry points and decorations on
regular functions. The pre-existing test for entry points was not
specific enough to catch introduced bug. This has been amended.
Copilot AI review requested due to automatic review settings July 30, 2026 19:35
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

✅ With the latest revision this PR passed the C/C++ code formatter.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Prevents entry-point inline SPIR-V decorations from incorrectly targeting source OpFunctions.

Changes:

  • Moves ordinary-function attribute handling into SpirvEmitter.
  • Excludes entry functions from function-target decorations.
  • Strengthens entry-point and diagnostic tests; updates release notes.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
tools/clang/lib/SPIRV/SpirvEmitter.cpp Applies attributes based on entry-point status.
tools/clang/lib/SPIRV/DeclResultIdMapper.cpp Removes unconditional function decoration.
tools/clang/test/CodeGenSPIRV/inline-spirv/spv.intrinsicDecorate.hlsl Rejects accidental source-function decoration.
tools/clang/test/CodeGenSPIRV/inline-spirv/spv.intrinsicDecorate.function.error.hlsl Checks both unsupported function attributes.
tools/clang/test/CodeGenSPIRV/inline-spirv/spv.intrinsicDecorate.entry.hlsl Adds focused entry-point coverage.
docs/ReleaseNotes.md Documents function decoration support.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tools/clang/lib/SPIRV/SpirvEmitter.cpp
Update code comments for accuracy and brevity.
Copilot AI review requested due to automatic review settings July 30, 2026 19:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings July 30, 2026 20:27

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 6 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (1)

tools/clang/lib/SPIRV/SpirvEmitter.cpp:1651

  • Ray-tracing entries are not covered by processInlineSpirvAttributes: emitEntryFunctionWrapper returns through emitEntryFunctionWrapperForRayTracing at line 15141 before the call at line 15226. Consequently, this new entry-point guard removes the only registration of [[vk::ext_capability]] and [[vk::ext_extension]] for ray-tracing entry functions, so those attributes are silently dropped. Keep decoration excluded, but register capabilities/extensions for ray entries as well.
  if (!isEntry) {
    declIdMapper.decorateWithIntrinsicAttrs(decl, func);
    declIdMapper.registerCapabilitiesAndExtensionsForDecl(decl);
  }

Comment thread docs/ReleaseNotes.md
Comment on lines +71 to +74
- Functions can now be decorated with inline SPIR-V, and
`[[vk::ext_capability]]`/`[[vk::ext_extension]]` are honored on ordinary
functions
[#8616](https://github.com/microsoft/DirectXShaderCompiler/pull/8616).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This needs to go in the upcoming release section, not the just-release 1.9.2607 one.

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

Labels

None yet

Projects

Status: New

Development

Successfully merging this pull request may close these issues.

3 participants