Skip to content

Commit 6333826

Browse files
committed
fixup: Put cbuffer size in param
1 parent 90c5fb1 commit 6333826

File tree

3 files changed

+4
-3
lines changed

3 files changed

+4
-3
lines changed

llvm/include/llvm/Analysis/DXILResource.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ class CBufferExtType : public TargetExtType {
164164
CBufferExtType &operator=(const CBufferExtType &) = delete;
165165

166166
Type *getResourceType() const { return getTypeParameter(0); }
167+
uint32_t getCBufferSize() const { return getIntParameter(0); }
167168

168169
static bool classof(const TargetExtType *T) {
169170
return T->getName() == "dx.CBuffer";

llvm/lib/Analysis/DXILResource.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -296,8 +296,7 @@ ResourceInfo::UAVInfo ResourceInfo::getUAV() const {
296296

297297
uint32_t ResourceInfo::getCBufferSize(const DataLayout &DL) const {
298298
assert(isCBuffer() && "Not a CBuffer");
299-
Type *Ty = cast<CBufferExtType>(HandleTy)->getResourceType();
300-
return DL.getTypeSizeInBits(Ty) / 8;
299+
return cast<CBufferExtType>(HandleTy)->getCBufferSize();
301300
}
302301

303302
dxil::SamplerType ResourceInfo::getSamplerType() const {

llvm/unittests/Analysis/DXILResourceTest.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,8 @@ TEST(DXILResource, AnnotationsAndMetadata) {
380380
// cbuffer cb0 { float4 g_X; float4 g_Y; }
381381
StructType *CBufType0 =
382382
StructType::create(Context, {Floatx4Ty, Floatx4Ty}, "cb0");
383-
HandleTy = llvm::TargetExtType::get(Context, "dx.CBuffer", CBufType0, {});
383+
HandleTy =
384+
llvm::TargetExtType::get(Context, "dx.CBuffer", CBufType0, {/*Size=*/32});
384385
RI = ResourceInfo(
385386
/*RecordID=*/0, /*Space=*/0, /*LowerBound=*/0, /*Size=*/1, HandleTy);
386387

0 commit comments

Comments
 (0)