@@ -11179,36 +11179,19 @@ SpirvEmitter::processIntrinsicPointerCast(const CallExpr *callExpr,
1117911179
1118011180SpirvInstruction *SpirvEmitter::processIntrinsicGetBufferContents(
1118111181 const CXXMemberCallExpr *callExpr) {
11182- LowerTypeVisitor lowerTypeVisitor(astContext, spvContext, spirvOptions,
11183- spvBuilder);
11184- Expr *obj = callExpr->getImplicitObjectArgument();
11185- SpirvInstruction *bufferPointer = doExpr(obj);
11182+ SpirvInstruction *bufferPointer =
11183+ doExpr(callExpr->getImplicitObjectArgument());
1118611184 if (!bufferPointer)
1118711185 return nullptr;
11188- if (bufferPointer->isRValue()) {
11189- bufferPointer->setRValue(false);
11190- bufferPointer->setStorageClass(spv::StorageClass::PhysicalStorageBuffer);
11191- bufferPointer->setLayoutRule(spirvOptions.sBufferLayoutRule);
11192- return bufferPointer;
11193- }
11194-
11195- unsigned align = hlsl::GetVKBufferPointerAlignment(obj->getType());
11196- lowerTypeVisitor.visitInstruction(bufferPointer);
11197-
11198- const SpirvPointerType *bufferPointerType =
11199- dyn_cast<SpirvPointerType>(bufferPointer->getResultType());
11200- SpirvLoad *retVal =
11201- spvBuilder.createLoad(bufferPointerType->getPointeeType(), bufferPointer,
11202- callExpr->getLocStart());
11203- if (!align) {
11204- QualType bufferType = hlsl::GetVKBufferPointerBufferType(obj->getType());
11205- AlignmentSizeCalculator alignmentCalc(astContext, spirvOptions);
11206- uint32_t stride;
11207- std::tie(align, std::ignore) = alignmentCalc.getAlignmentAndSize(
11208- bufferType, retVal->getLayoutRule(), llvm::None, &stride);
11209- }
11210- retVal->setAlignment(align);
11186+
11187+ SpirvInstruction *retVal =
11188+ bufferPointer->isRValue()
11189+ ? bufferPointer
11190+ : spvBuilder.createLoad(bufferPointer->getAstResultType(),
11191+ bufferPointer, callExpr->getLocStart());
1121111192 retVal->setRValue(false);
11193+ retVal->setStorageClass(spv::StorageClass::PhysicalStorageBuffer);
11194+ retVal->setLayoutRule(spirvOptions.sBufferLayoutRule);
1121211195 return retVal;
1121311196}
1121411197
0 commit comments