@@ -206,6 +206,7 @@ enum ArBasicKind {
206206 AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY,
207207 AR_OBJECT_VK_SAMPLED_TEXTURE2DMS,
208208 AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY,
209+ AR_OBJECT_VK_SAMPLED_TEXTURE3D,
209210#endif // ENABLE_SPIRV_CODEGEN
210211 // SPIRV change ends
211212
@@ -572,6 +573,7 @@ const UINT g_uBasicKindProps[] = {
572573 BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
573574 BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
574575 BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
576+ BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
575577#endif // ENABLE_SPIRV_CODEGEN
576578 // SPIRV change ends
577579
@@ -1292,6 +1294,8 @@ static const ArBasicKind g_VKSampledTexture2DMSCT[] = {
12921294 AR_OBJECT_VK_SAMPLED_TEXTURE2DMS, AR_BASIC_UNKNOWN};
12931295static const ArBasicKind g_VKSampledTexture2DMSArrayCT[] = {
12941296 AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_BASIC_UNKNOWN};
1297+ static const ArBasicKind g_VKSampledTexture3DCT[] = {
1298+ AR_OBJECT_VK_SAMPLED_TEXTURE3D, AR_BASIC_UNKNOWN};
12951299#endif
12961300
12971301// Basic kinds, indexed by a LEGAL_INTRINSIC_COMPTYPES value.
@@ -1361,6 +1365,7 @@ const ArBasicKind *g_LegalIntrinsicCompTypes[] = {
13611365 g_VKSampledTexture2DArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2D_ARRAY
13621366 g_VKSampledTexture2DMSCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS
13631367 g_VKSampledTexture2DMSArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS_ARRAY
1368+ g_VKSampledTexture3DCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE3D
13641369#endif
13651370};
13661371static_assert(
@@ -1423,7 +1428,7 @@ static const ArBasicKind g_ArBasicKindsAsTypes[] = {
14231428 AR_OBJECT_VK_BUFFER_POINTER, AR_OBJECT_VK_SAMPLED_TEXTURE1D,
14241429 AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2D,
14251430 AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2DMS,
1426- AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY,
1431+ AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE3D,
14271432#endif // ENABLE_SPIRV_CODEGEN
14281433 // SPIRV change ends
14291434
@@ -1541,6 +1546,7 @@ static const uint8_t g_ArBasicKindsTemplateCount[] = {
15411546 1, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
15421547 1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
15431548 1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
1549+ 1, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
15441550#endif // ENABLE_SPIRV_CODEGEN
15451551 // SPIRV change ends
15461552
@@ -1700,6 +1706,7 @@ static const SubscriptOperatorRecord g_ArBasicKindsSubscripts[] = {
17001706 {3, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
17011707 {2, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
17021708 {3, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
1709+ {3, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
17031710#endif // ENABLE_SPIRV_CODEGEN
17041711 // SPIRV change ends
17051712
@@ -1875,6 +1882,7 @@ static const char *g_ArBasicTypeNames[] = {
18751882 "SampledTexture2DArray",
18761883 "SampledTexture2DMS",
18771884 "SampledTexture2DMSArray",
1885+ "SampledTexture3D",
18781886#endif // ENABLE_SPIRV_CODEGEN
18791887 // SPIRV change ends
18801888
@@ -2552,6 +2560,10 @@ static void GetIntrinsicMethods(ArBasicKind kind,
25522560 *intrinsics = g_VkSampledTexture2DMSArrayMethods;
25532561 *intrinsicCount = _countof(g_VkSampledTexture2DMSArrayMethods);
25542562 break;
2563+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
2564+ *intrinsics = g_VkSampledTexture3DMethods;
2565+ *intrinsicCount = _countof(g_VkSampledTexture3DMethods);
2566+ break;
25552567#endif
25562568 case AR_OBJECT_HIT_OBJECT:
25572569 *intrinsics = g_DxHitObjectMethods;
@@ -4162,7 +4174,8 @@ class HLSLExternalSource : public ExternalSemaSource {
41624174 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D ||
41634175 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY ||
41644176 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS ||
4165- kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY) {
4177+ kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY ||
4178+ kind == AR_OBJECT_VK_SAMPLED_TEXTURE3D) {
41664179 if (!m_vkNSDecl)
41674180 continue;
41684181 QualType float4Type =
@@ -4998,6 +5011,7 @@ class HLSLExternalSource : public ExternalSemaSource {
49985011 case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
49995012 case AR_OBJECT_TEXTURE2D:
50005013 case AR_OBJECT_TEXTURE2D_ARRAY:
5014+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
50015015 case AR_OBJECT_TEXTURE3D:
50025016 case AR_OBJECT_TEXTURECUBE:
50035017 case AR_OBJECT_TEXTURECUBE_ARRAY:
@@ -5148,6 +5162,9 @@ class HLSLExternalSource : public ExternalSemaSource {
51485162 ResClass = DXIL::ResourceClass::UAV;
51495163 return true;
51505164 case AR_OBJECT_TEXTURE3D:
5165+ #ifdef ENABLE_SPIRV_CODEGEN
5166+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
5167+ #endif
51515168 ResKind = DXIL::ResourceKind::Texture3D;
51525169 ResClass = DXIL::ResourceClass::SRV;
51535170 return true;
@@ -11709,6 +11726,7 @@ void hlsl::DiagnoseRegisterType(clang::Sema *self, clang::SourceLocation loc,
1170911726 case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
1171011727 case AR_OBJECT_TEXTURE2D:
1171111728 case AR_OBJECT_TEXTURE2D_ARRAY:
11729+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
1171211730 case AR_OBJECT_TEXTURE3D:
1171311731 case AR_OBJECT_TEXTURECUBE:
1171411732 case AR_OBJECT_TEXTURECUBE_ARRAY:
0 commit comments