@@ -0,0 +1,54 @@
+// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -x hlsl -o - %s
-verify
+
+// This file mirrors the diagnostics testing in ParseHLSLRootSignatureTest.cpp
+// to verify that the correct diagnostics strings are output
+
+// Lexer related tests
+
+#define
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/125131
>From abe7e6703a008608e19ce3f9bdcbd1b613fab60d Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 29 Jan 2025 19:40:08 +
Subject: [PATCH 1/6] add basic empty root signature
---
clang/lib/CodeGen/CGHLSL
https://github.com/inbelic closed
https://github.com/llvm/llvm-project/pull/125131
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/138002
>From 15857bf8e1303e2325b48e417e7abd26aa77910e Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 30 Apr 2025 17:53:11 +
Subject: [PATCH 1/3] [HLSL][RootSignature] Add mandatory parameters for
RootConst
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/138007
Rate limit ยท GitHub
body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe
UI,Helvetica,Arial,sans-s
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/138055
>From 85e92c438ca39c24fdc7840afebd88ebaf025a3c Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 30 Apr 2025 23:14:07 +
Subject: [PATCH 1/6] pre-req: define missing lexer tokens for flags
---
.../clan
@@ -6,21 +6,87 @@
//
//===--===//
+#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/BinaryFormat/DXContainer.h"
+#include
inbelic wrote:
nit: to check that all these headers are requi
@@ -274,27 +274,37 @@ void DXContainerWriter::writeParts(raw_ostream &OS) {
RS.StaticSamplersOffset = P.RootSignature->StaticSamplersOffset;
for (const auto &Param : P.RootSignature->Parameters) {
-mcdxbc::RootParameter NewParam;
-NewParam.Header =
@@ -274,27 +274,37 @@ void DXContainerWriter::writeParts(raw_ostream &OS) {
RS.StaticSamplersOffset = P.RootSignature->StaticSamplersOffset;
for (const auto &Param : P.RootSignature->Parameters) {
-mcdxbc::RootParameter NewParam;
-NewParam.Header =
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/137690
>From 0ccff5b9be4f876969e4db439e67edbc7af6cb29 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Mon, 28 Apr 2025 18:42:10 +
Subject: [PATCH 01/16] [HLSL][RootSignature] Define and integrate rootsig
clang a
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/138002
>From 15857bf8e1303e2325b48e417e7abd26aa77910e Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 30 Apr 2025 17:53:11 +
Subject: [PATCH 1/4] [HLSL][RootSignature] Add mandatory parameters for
RootConst
@@ -274,27 +274,37 @@ void DXContainerWriter::writeParts(raw_ostream &OS) {
RS.StaticSamplersOffset = P.RootSignature->StaticSamplersOffset;
for (const auto &Param : P.RootSignature->Parameters) {
-mcdxbc::RootParameter NewParam;
-NewParam.Header =
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140305
- defines in-memory reprsentation of `comparisonFunc` and `borderColor`
- defines parsing of the `ComparisonFunc` and `StaticBorderColor` enum
- integrates parsing of these number parameters with their respect
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140306
- adds the `space` and `visibility` parameters to StaticSampler
- adds basic unit tests to demonstrate setting functionality
Part 7 and Resolves https://github.com/llvm/llvm-project/issues/126574
>From 28c7ad
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140306
>From da757494d005288becdf39f738f3bdcf792dd093 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Fri, 16 May 2025 20:33:09 +
Subject: [PATCH] [HLSL][RootSignature] Add space, visibility enums to
StaticSampl
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140291
- defines in-memory reprsentation of `maxAnisotropy`, `minLOD` and `maxLOD`
- integrates parsing of these number parameters with their respective,
`parseUInt` and `parseFloat` respectively
- adds basic unit t
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140293
- defines in-memory reprsentation of `address[U|V|W]`
- defines parsing of the `TextureAddressMode` enum
- integrates parsing of these number parameters with their respective,
`parseTextureAddressMode`
- add
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140294
- defines in-memory reprsentation of `filter`
- defines parsing of the `Filter` enum
- integrates parsing of these number parameters with their respective,
`parseFilter`
- adds basic unit tests to demonstrat
@@ -663,6 +669,23 @@ RootSignatureParser::parseStaticSamplerParams() {
return std::nullopt;
Params.Reg = Reg;
}
+
+// `mipLODBias` `=` NUMBER
+if (tryConsumeExpectedToken(TokenKind::kw_mipLODBias)) {
+ if (Params.MipLODBias.has_value()) {
+
@@ -155,6 +217,16 @@ static bool verifyVersion(uint32_t Version) {
return (Version == 1 || Version == 2);
}
+static bool verifyRegisterValue(uint32_t RegisterValue) {
+ return !(RegisterValue == 0x);
+}
+
+static bool verifyRegisterSpace(uint32_t RegisterSpace) {
+
@@ -105,6 +113,56 @@ static bool parseRootConstants(LLVMContext *Ctx,
mcdxbc::RootSignatureDesc &RSD,
return false;
}
+static bool parseRootDescriptors(LLVMContext *Ctx,
+ mcdxbc::RootSignatureDesc &RSD,
+ MDNo
@@ -105,6 +113,56 @@ static bool parseRootConstants(LLVMContext *Ctx,
mcdxbc::RootSignatureDesc &RSD,
return false;
}
+static bool parseRootDescriptors(LLVMContext *Ctx,
+ mcdxbc::RootSignatureDesc &RSD,
+ MDNo
@@ -112,98 +113,17 @@ struct DescriptorTableYaml {
SmallVector Ranges;
};
+using ParameterData =
+std::variant;
+
struct RootParameterYamlDesc {
uint32_t Type;
inbelic wrote:
This field can be removed now right? IIUC, it is held in the variant
edit
@@ -278,33 +280,40 @@ void DXContainerWriter::writeParts(raw_ostream &OS) {
auto Header = dxbc::RootParameterHeader{Param.Type, Param.Visibility,
Param.Offset};
-switch (Param.Type) {
-case llvm::to_underl
@@ -308,6 +413,21 @@ PreservedAnalyses RootSignatureAnalysisPrinter::run(Module
&M,
<< "Shader Register: " << Constants->ShaderRegister << "\n";
OS << indent(Space + 2)
<< "Num 32 Bit Values: " << Constants->Num32BitValues << "\n";
+ } else i
@@ -91,6 +99,23 @@ struct RootParam {
Register Reg;
uint32_t Space = 0;
ShaderVisibility Visibility = ShaderVisibility::All;
+ RootDescriptorFlags Flags;
+
+ void setDefaultFlags() {
+assert(Type != ParamType::Sampler &&
+ "Sampler is not a valid type of P
@@ -223,6 +223,34 @@ TEST_F(ParseHLSLRootSignatureTest,
ValidParseDTClausesTest) {
ASSERT_TRUE(Consumer->isSatisfied());
}
+TEST_F(ParseHLSLRootSignatureTest, ValidParseStaticSamplerTest) {
inbelic wrote:
I opted-out to reduce redundancy, as there is alrea
@@ -606,6 +644,30 @@
RootSignatureParser::parseDescriptorTableClauseParams(TokenKind RegType) {
return Params;
}
+std::optional
+RootSignatureParser::parseStaticSamplerParams() {
+ assert(CurToken.TokKind == TokenKind::pu_l_paren &&
+ "Expects to only be invoked st
@@ -50,15 +51,55 @@ static void reportInvalidDirection(Module &M,
DXILResourceMap &DRM) {
}
}
-} // namespace
+static void reportOverlappingError(Module &M, ResourceInfo R1,
+ ResourceInfo R2) {
+ SmallString<64> Message;
+ raw_svector_os
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140291
>From d6148b7d9815c2543f37d50a7a611e482c99b91c Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Fri, 16 May 2025 16:08:36 +
Subject: [PATCH 1/8] pre-req: add keywords
---
clang/include/clang/Lex/HLSLRootS
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140181
>From f9fbe391091fbf23203d6cc997e19d05d92a4a18 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Thu, 15 May 2025 23:14:10 +
Subject: [PATCH 1/9] pre-req: add missing token to Lexer
---
clang/include/clang
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140181
>From f9fbe391091fbf23203d6cc997e19d05d92a4a18 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Thu, 15 May 2025 23:14:10 +
Subject: [PATCH 01/10] pre-req: add missing token to Lexer
---
clang/include/cla
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140181
>From f9fbe391091fbf23203d6cc997e19d05d92a4a18 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Thu, 15 May 2025 23:14:10 +
Subject: [PATCH 01/10] pre-req: add missing token to Lexer
---
clang/include/cla
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140293
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -50,15 +51,55 @@ static void reportInvalidDirection(Module &M,
DXILResourceMap &DRM) {
}
}
-} // namespace
+static void reportOverlappingError(Module &M, ResourceInfo R1,
+ ResourceInfo R2) {
+ SmallString<64> Message;
+ raw_svector_os
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140148
- defines the `parseRootParamParams` infastructure for parsing the params of a
RootParam
- defines the register type to illustrate use
- add tests to demonstrate functionality
Part 2 of https://github.com/llvm/
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140151
- define in-memory representation of optional non-flag parameters to RootParam
- fill in data to parse these params in `parseRootParamParams`
- add unit tests
Part 3 of https://github.com/llvm/llvm-project/issue
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140152
- defines RootDescriptorFlags in-memory representation
- defines parseRootDescriptorFlags to be DXC compatible. This is why we support
multiple `|` flags even validation will assert that only one flag is set...
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140148
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140148
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140151
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140152
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140962
As was established
[previously](https://github.com/llvm/llvm-project/pull/140957), we created a
structure to model a resource range and to detect an overlap in a given set of
these.
However, a resource range
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140957
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140962
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140148
>From 994bc35f7eb1707097511a121d2a5a0b6f42637c Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Thu, 15 May 2025 19:49:44 +
Subject: [PATCH 1/2] [HLSL][RootSignature] Add parsing of Register in params
for
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/141130
- Implements serialization of the currently completely defined `RootElement`s,
namely `RootConstants` and `RootFlags`
- Adds unit testing for the serialization methods
Resolves: https://github.com/llvm/llvm-pro
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140962
>From bcc056ea5c753c3b1fa83d214c6bd14e90d9ee25 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 21 May 2025 00:12:04 +
Subject: [PATCH] [HLSL][RootSignature] Plug into the thing
---
.../clang/Basic/D
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/140957
A resource range consists of a closed interval, `[a;b]`, denoting which shader
registers it is bound to.
For instance:
- `CBV(b1)` corresponds to the resource range of `[1;1]`
- `CBV(b0, numDescriptors = 3)`
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140957
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic approved this pull request.
Ha the diff confused me, the diff makes it look like `RootDescriptor` is moving
namespaces but in reality it is all the ones in between that are changing.
https://github.com/llvm/llvm-project/pull/141173
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140957
>From a3240de319d3ef455b5db83b66b5bd601cecc0b3 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Tue, 20 May 2025 19:47:29 +
Subject: [PATCH 1/2] [HLSL][RootSignature] Implement resource register
validation
@@ -951,6 +952,108 @@ void SemaHLSL::emitLogicalOperatorFixIt(Expr *LHS, Expr
*RHS,
<< NewFnName << FixItHint::CreateReplacement(FullRange, OS.str());
}
+namespace {
+
+// A resource range overlaps with another resource range if they have:
+// - equivalent ResourceClass
@@ -973,6 +1076,8 @@ void SemaHLSL::handleRootSignatureAttr(Decl *D, const
ParsedAttr &AL) {
if (auto *SignatureDecl =
dyn_cast(R.getFoundDecl())) {
// Perform validation of constructs here
+ if (handleRootSignatureDecl(SignatureDecl, AL.getLoc()))
+
@@ -951,6 +952,108 @@ void SemaHLSL::emitLogicalOperatorFixIt(Expr *LHS, Expr
*RHS,
<< NewFnName << FixItHint::CreateReplacement(FullRange, OS.str());
}
+namespace {
+
+// A resource range overlaps with another resource range if they have:
+// - equivalent ResourceClass
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/140962
>From bcc056ea5c753c3b1fa83d214c6bd14e90d9ee25 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 21 May 2025 00:12:04 +
Subject: [PATCH 1/4] [HLSL][RootSignature] Plug into the thing
---
.../clang/Bas
inbelic wrote:
I guess the awkward part is that it might be nice to clean up all the current
error tests that are spread across many files to just one for each param type.
https://github.com/llvm/llvm-project/pull/144465
___
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/144465
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/140962
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -973,6 +1076,8 @@ void SemaHLSL::handleRootSignatureAttr(Decl *D, const
ParsedAttr &AL) {
if (auto *SignatureDecl =
dyn_cast(R.getFoundDecl())) {
// Perform validation of constructs here
+ if (handleRootSignatureDecl(SignatureDecl, AL.getLoc()))
+
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/143198
Implements serialization of the remaining completely defined `RootElement`s,
namely `RootDescriptor`s and `RootFlag`s.
- Adds unit testing for the serialization methods
Resolves https://github.com/llvm/llvm-pr
@@ -71,6 +71,199 @@ static raw_ostream &operator<<(raw_ostream &OS,
return OS;
}
+static raw_ostream &operator<<(raw_ostream &OS, const SamplerFilter &Filter) {
+ switch (Filter) {
+ case SamplerFilter::MinMagMipPoint:
+OS << "MinMagMipPoint";
inbelic
https://github.com/inbelic converted_to_draft
https://github.com/llvm/llvm-project/pull/143198
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
inbelic wrote:
accidently included
https://github.com/llvm/llvm-project/pull/143422
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-c
@@ -456,6 +664,48 @@ static bool validate(LLVMContext *Ctx, const
mcdxbc::RootSignatureDesc &RSD) {
}
}
+ for (const dxbc::RTS0::v1::StaticSampler &Sampler : RSD.StaticSamplers) {
+if (!verifySamplerFilter(Sampler.Filter))
+ return reportValueError(Ctx, "Filte
@@ -399,6 +486,127 @@ static bool verifyDescriptorRangeFlag(uint32_t Version,
uint32_t Type,
return false;
}
+static bool verifySamplerFilter(uint32_t Filter) {
+ switch (Filter) {
+ case llvm::to_underlying(dxbc::StaticSamplerFilter::MIN_MAG_MIP_POINT):
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/147115
>From cb29c3acd72990b35e7be85d2f9796fb8098f3d2 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Fri, 27 Jun 2025 18:36:38 +
Subject: [PATCH 01/15] nfc: introduce wrapper `RootSignatureElement` around
`Root
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/147115
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -130,12 +149,13 @@ class SemaHLSL : public SemaBase {
/// Creates the Root Signature decl of the parsed Root Signature elements
/// onto the AST and push it onto current Scope
- void ActOnFinishRootSignatureDecl(
- SourceLocation Loc, IdentifierInfo *DeclIdent,
-
https://github.com/inbelic created
https://github.com/llvm/llvm-project/pull/147111
This pr resolves some discrepancies in verification during `validate` in
`DXILRootSignature.cpp`.
Namely,
- `verifyDescriptorFlag` should be updated to check what flags are valid based
on the root signature ve
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/147111
>From ab274d239bd12e39fc91d7cc2fc7e899be274e55 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Fri, 4 Jul 2025 20:54:50 +
Subject: [PATCH 1/6] [HLSL][DirectX] Add `verifyNumDescriptors`
---
.../Frontend/
@@ -1064,21 +1064,25 @@ SemaHLSL::ActOnStartRootSignatureDecl(StringRef
Signature) {
void SemaHLSL::ActOnFinishRootSignatureDecl(
SourceLocation Loc, IdentifierInfo *DeclIdent,
-SmallVector &Elements) {
+ArrayRef RootElements) {
+
+ if (handleRootSignatureElement
@@ -1103,9 +1107,15 @@ bool
SemaHLSL::handleRootSignatureDecl(HLSLRootSignatureDecl *D,
using ResourceRange = llvm::hlsl::rootsig::ResourceRange;
using GroupT = std::pair;
+ // Introduce a mapping from the collected RangeInfos back to the
+ // RootSignatureElement that
https://github.com/inbelic ready_for_review
https://github.com/llvm/llvm-project/pull/147094
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
inbelic wrote:
Contemplating if I should split this into two prs. Will see if there is a nice
way to de-couple the improve and fix error portions of this.
https://github.com/llvm/llvm-project/pull/147350
___
llvm-branch-commits mailing list
llvm-branc
https://github.com/inbelic converted_to_draft
https://github.com/llvm/llvm-project/pull/147350
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic ready_for_review
https://github.com/llvm/llvm-project/pull/147800
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
@@ -32,6 +32,9 @@ struct RangeInfo {
llvm::dxil::ResourceClass Class;
uint32_t Space;
llvm::dxbc::ShaderVisibility Visibility;
+
+ // The index retains its original position before being sorted by group.
+ size_t Index;
inbelic wrote:
Okay, so I messed
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/147115
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/147115
>From bef7466d6110c682ee5887b7fc98c980f7a1ec94 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Fri, 27 Jun 2025 18:36:38 +
Subject: [PATCH 01/14] nfc: introduce wrapper `RootSignatureElement` around
`Root
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/147115
>From bef7466d6110c682ee5887b7fc98c980f7a1ec94 Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Fri, 27 Jun 2025 18:36:38 +
Subject: [PATCH 01/15] nfc: introduce wrapper `RootSignatureElement` around
`Root
inbelic wrote:
This should be in the include directory
https://github.com/llvm/llvm-project/pull/146785
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/li
@@ -0,0 +1,160 @@
+; RUN: not opt -S -passes='dxil-post-optimization-validation'
-mtriple=dxil-pc-shadermodel6.6-compute %s 2>&1
+
+; CHECK: error: register cbuffer (space=665, register=3) is not defined in
Root Signature
+; CHECK: error: register srv (space=0, register=0) is n
@@ -14,10 +14,129 @@
#ifndef LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
#define LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
+#include "DXILRootSignature.h"
+#include "llvm/ADT/IntervalMap.h"
+#include "llvm/Analysis/DXILResource.h"
#include "llvm/IR
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/147800
>From 95166f5e2bfb2816ce39d3abd1823486742109bd Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 9 Jul 2025 15:50:55 +
Subject: [PATCH 01/11] remove confusing hlsl_unexpected_end_of_params
diagnostic
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/147832
>From 7ec7e32d2ac4945a489d5463b9fb700b0cceff9d Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 9 Jul 2025 21:21:53 +
Subject: [PATCH] [HLSL][RootSignature] Implement multiple diagnostics in
`RootSign
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/147832
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
https://github.com/inbelic edited
https://github.com/llvm/llvm-project/pull/147832
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits
inbelic wrote:
Ah okay, didn't realize it follows a different structure here. Thanks for
checking
https://github.com/llvm/llvm-project/pull/146785
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.o
@@ -94,14 +147,83 @@ static void reportErrors(Module &M, DXILResourceMap &DRM,
assert(!DRBI.hasImplicitBinding() && "implicit bindings should be handled in
"
"DXILResourceImplicitBinding pass");
+
+ if (auto RSD = getRootSignature(RSB
@@ -14,10 +14,129 @@
#ifndef LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
#define LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
+#include "DXILRootSignature.h"
+#include "llvm/ADT/IntervalMap.h"
+#include "llvm/Analysis/DXILResource.h"
#include "llvm/IR
@@ -14,10 +14,129 @@
#ifndef LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
#define LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
+#include "DXILRootSignature.h"
+#include "llvm/ADT/IntervalMap.h"
+#include "llvm/Analysis/DXILResource.h"
#include "llvm/IR
@@ -0,0 +1,160 @@
+; RUN: not opt -S -passes='dxil-post-optimization-validation'
-mtriple=dxil-pc-shadermodel6.6-compute %s 2>&1
+
+; CHECK: error: register cbuffer (space=665, register=3) is not defined in
Root Signature
+; CHECK: error: register srv (space=0, register=0) is n
@@ -14,10 +14,129 @@
#ifndef LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
#define LLVM_LIB_TARGET_DIRECTX_DXILPOSTOPTIMIZATIONVALIDATION_H
+#include "DXILRootSignature.h"
+#include "llvm/ADT/IntervalMap.h"
+#include "llvm/Analysis/DXILResource.h"
#include "llvm/IR
@@ -0,0 +1,160 @@
+; RUN: not opt -S -passes='dxil-post-optimization-validation'
-mtriple=dxil-pc-shadermodel6.6-compute %s 2>&1
+
+; CHECK: error: register cbuffer (space=665, register=3) is not defined in
Root Signature
+; CHECK: error: register srv (space=0, register=0) is n
https://github.com/inbelic updated
https://github.com/llvm/llvm-project/pull/147832
>From 7ec7e32d2ac4945a489d5463b9fb700b0cceff9d Mon Sep 17 00:00:00 2001
From: Finn Plummer
Date: Wed, 9 Jul 2025 21:21:53 +
Subject: [PATCH 1/3] [HLSL][RootSignature] Implement multiple diagnostics in
`Root
@@ -27,51 +36,68 @@ RootSignatureParser::RootSignatureParser(
bool RootSignatureParser::parse() {
// Iterate as many RootSignatureElements as possible, until we hit the
// end of the stream
+ bool HadError = false;
while (!peekExpectedToken(TokenKind::end_of_stream)) {
@@ -27,51 +36,68 @@ RootSignatureParser::RootSignatureParser(
bool RootSignatureParser::parse() {
// Iterate as many RootSignatureElements as possible, until we hit the
// end of the stream
+ bool HadError = false;
while (!peekExpectedToken(TokenKind::end_of_stream)) {
@@ -27,51 +36,68 @@ RootSignatureParser::RootSignatureParser(
bool RootSignatureParser::parse() {
// Iterate as many RootSignatureElements as possible, until we hit the
// end of the stream
+ bool HadError = false;
while (!peekExpectedToken(TokenKind::end_of_stream)) {
@@ -27,51 +36,68 @@ RootSignatureParser::RootSignatureParser(
bool RootSignatureParser::parse() {
// Iterate as many RootSignatureElements as possible, until we hit the
// end of the stream
+ bool HadError = false;
inbelic wrote:
The pattern that I have s
101 - 200 of 238 matches
Mail list logo