@@ -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;
@@ -4164,7 +4176,8 @@ class HLSLExternalSource : public ExternalSemaSource {
41644176 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D ||
41654177 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY ||
41664178 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS ||
4167- kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY) {
4179+ kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY ||
4180+ kind == AR_OBJECT_VK_SAMPLED_TEXTURE3D) {
41684181 if (!m_vkNSDecl)
41694182 continue;
41704183 QualType float4Type =
@@ -5000,6 +5013,7 @@ class HLSLExternalSource : public ExternalSemaSource {
50005013 case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
50015014 case AR_OBJECT_TEXTURE2D:
50025015 case AR_OBJECT_TEXTURE2D_ARRAY:
5016+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
50035017 case AR_OBJECT_TEXTURE3D:
50045018 case AR_OBJECT_TEXTURECUBE:
50055019 case AR_OBJECT_TEXTURECUBE_ARRAY:
@@ -5142,6 +5156,7 @@ class HLSLExternalSource : public ExternalSemaSource {
51425156 ResClass = DXIL::ResourceClass::UAV;
51435157 return true;
51445158 case AR_OBJECT_TEXTURE3D:
5159+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
51455160 ResKind = DXIL::ResourceKind::Texture3D;
51465161 ResClass = DXIL::ResourceClass::SRV;
51475162 return true;
@@ -11699,6 +11714,7 @@ void hlsl::DiagnoseRegisterType(clang::Sema *self, clang::SourceLocation loc,
1169911714 case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
1170011715 case AR_OBJECT_TEXTURE2D:
1170111716 case AR_OBJECT_TEXTURE2D_ARRAY:
11717+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
1170211718 case AR_OBJECT_TEXTURE3D:
1170311719 case AR_OBJECT_TEXTURECUBE:
1170411720 case AR_OBJECT_TEXTURECUBE_ARRAY:
0 commit comments