@@ -1237,8 +1237,10 @@ static const ArBasicKind g_AnyOutputRecordCT[] = {
1237
1237
static const ArBasicKind g_DxHitObjectCT[] = {AR_OBJECT_HIT_OBJECT,
1238
1238
AR_BASIC_UNKNOWN};
1239
1239
1240
+ #ifdef ENABLE_SPIRV_CODEGEN
1240
1241
static const ArBasicKind g_VKBufferPointerCT[] = {AR_OBJECT_VK_BUFFER_POINTER,
1241
1242
AR_BASIC_UNKNOWN};
1243
+ #endif
1242
1244
1243
1245
// Basic kinds, indexed by a LEGAL_INTRINSIC_COMPTYPES value.
1244
1246
const ArBasicKind *g_LegalIntrinsicCompTypes[] = {
@@ -1295,7 +1297,9 @@ const ArBasicKind *g_LegalIntrinsicCompTypes[] = {
1295
1297
g_GroupNodeOutputRecordsCT, // LICOMPTYPE_GROUP_NODE_OUTPUT_RECORDS
1296
1298
g_ThreadNodeOutputRecordsCT, // LICOMPTYPE_THREAD_NODE_OUTPUT_RECORDS
1297
1299
g_DxHitObjectCT, // LICOMPTYPE_HIT_OBJECT
1298
- g_VKBufferPointerCT, // LICOMPTYPE_VK_BUFFER_POINTER
1300
+ #ifdef ENABLE_SPIRV_CODEGEN
1301
+ g_VKBufferPointerCT, // LICOMPTYPE_VK_BUFFER_POINTER
1302
+ #endif
1299
1303
};
1300
1304
static_assert(
1301
1305
ARRAYSIZE(g_LegalIntrinsicCompTypes) == LICOMPTYPE_COUNT,
@@ -3587,6 +3591,7 @@ class HLSLExternalSource : public ExternalSemaSource {
3587
3591
case LICOMPTYPE_HIT_OBJECT:
3588
3592
paramTypes.push_back(GetBasicKindType(AR_OBJECT_HIT_OBJECT));
3589
3593
break;
3594
+ #ifdef ENABLE_SPIRV_CODEGEN
3590
3595
case LICOMPTYPE_VK_BUFFER_POINTER: {
3591
3596
const ArBasicKind *match =
3592
3597
std::find(g_ArBasicKindsAsTypes,
@@ -3600,6 +3605,7 @@ class HLSLExternalSource : public ExternalSemaSource {
3600
3605
m_sema->getASTContext().getTypeDeclType(m_objectTypeDecls[index]));
3601
3606
break;
3602
3607
}
3608
+ #endif
3603
3609
default:
3604
3610
DXASSERT(false, "Argument type of intrinsic function is not "
3605
3611
"supported");
@@ -4856,7 +4862,10 @@ class HLSLExternalSource : public ExternalSemaSource {
4856
4862
case AR_OBJECT_EMPTY_NODE_OUTPUT_ARRAY:
4857
4863
case AR_OBJECT_THREAD_NODE_OUTPUT_RECORDS:
4858
4864
case AR_OBJECT_GROUP_NODE_OUTPUT_RECORDS:
4859
- case AR_OBJECT_VK_BUFFER_POINTER: {
4865
+ #ifdef ENABLE_SPIRV_CODEGEN
4866
+ case AR_OBJECT_VK_BUFFER_POINTER:
4867
+ #endif
4868
+ {
4860
4869
const ArBasicKind *match = std::find(
4861
4870
g_ArBasicKindsAsTypes,
4862
4871
&g_ArBasicKindsAsTypes[_countof(g_ArBasicKindsAsTypes)], kind);
@@ -5372,8 +5381,10 @@ class HLSLExternalSource : public ExternalSemaSource {
5372
5381
<< type << GetMatrixOrVectorElementType(type);
5373
5382
}
5374
5383
return valid;
5384
+ #ifdef ENABLE_SPIRV_CODEGEN
5375
5385
} else if (hlsl::IsVKBufferPointerType(qt)) {
5376
5386
return true;
5387
+ #endif
5377
5388
} else if (qt->isStructureOrClassType()) {
5378
5389
const RecordType *recordType = qt->getAs<RecordType>();
5379
5390
objectKind = ClassifyRecordType(recordType);
@@ -9751,10 +9762,12 @@ bool HLSLExternalSource::CanConvert(SourceLocation loc, Expr *sourceExpr,
9751
9762
return false;
9752
9763
}
9753
9764
9765
+ #ifdef ENABLE_SPIRV_CODEGEN
9754
9766
// Cast vk::BufferPointer to pointer address.
9755
9767
if (SourceInfo.EltKind == AR_OBJECT_VK_BUFFER_POINTER) {
9756
9768
return TargetInfo.EltKind == AR_BASIC_UINT64;
9757
9769
}
9770
+ #endif
9758
9771
9759
9772
// Cast cbuffer to its result value.
9760
9773
if ((SourceInfo.EltKind == AR_OBJECT_CONSTANT_BUFFER ||
@@ -11604,6 +11617,7 @@ static bool CheckBarrierCall(Sema &S, FunctionDecl *FD, CallExpr *CE) {
11604
11617
return false;
11605
11618
}
11606
11619
11620
+ #ifdef ENABLE_SPIRV_CODEGEN
11607
11621
static bool CheckVKBufferPointerCast(Sema &S, FunctionDecl *FD, CallExpr *CE,
11608
11622
bool isStatic) {
11609
11623
const Expr *argExpr = CE->getArg(0);
@@ -11627,6 +11641,7 @@ static bool CheckVKBufferPointerCast(Sema &S, FunctionDecl *FD, CallExpr *CE,
11627
11641
11628
11642
return false;
11629
11643
}
11644
+ #endif
11630
11645
11631
11646
// Check HLSL call constraints, not fatal to creating the AST.
11632
11647
void Sema::CheckHLSLFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall,
@@ -11646,12 +11661,14 @@ void Sema::CheckHLSLFunctionCall(FunctionDecl *FDecl, CallExpr *TheCall,
11646
11661
case hlsl::IntrinsicOp::IOP_Barrier:
11647
11662
CheckBarrierCall(*this, FDecl, TheCall);
11648
11663
break;
11664
+ #ifdef ENABLE_SPIRV_CODEGEN
11649
11665
case hlsl::IntrinsicOp::IOP_Vkreinterpret_pointer_cast:
11650
11666
CheckVKBufferPointerCast(*this, FDecl, TheCall, false);
11651
11667
break;
11652
11668
case hlsl::IntrinsicOp::IOP_Vkstatic_pointer_cast:
11653
11669
CheckVKBufferPointerCast(*this, FDecl, TheCall, true);
11654
11670
break;
11671
+ #endif
11655
11672
default:
11656
11673
break;
11657
11674
}
0 commit comments