@@ -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,7 +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
575- BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
576+ BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
576577#endif // ENABLE_SPIRV_CODEGEN
577578 // SPIRV change ends
578579
@@ -1293,6 +1294,8 @@ static const ArBasicKind g_VKSampledTexture2DMSCT[] = {
12931294 AR_OBJECT_VK_SAMPLED_TEXTURE2DMS, AR_BASIC_UNKNOWN};
12941295static const ArBasicKind g_VKSampledTexture2DMSArrayCT[] = {
12951296 AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_BASIC_UNKNOWN};
1297+ static const ArBasicKind g_VKSampledTexture3DCT[] = {
1298+ AR_OBJECT_VK_SAMPLED_TEXTURE3D, AR_BASIC_UNKNOWN};
12961299#endif
12971300
12981301// Basic kinds, indexed by a LEGAL_INTRINSIC_COMPTYPES value.
@@ -1362,6 +1365,7 @@ const ArBasicKind *g_LegalIntrinsicCompTypes[] = {
13621365 g_VKSampledTexture2DArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2D_ARRAY
13631366 g_VKSampledTexture2DMSCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS
13641367 g_VKSampledTexture2DMSArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS_ARRAY
1368+ g_VKSampledTexture3DCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE3D
13651369#endif
13661370};
13671371static_assert(
@@ -1424,7 +1428,7 @@ static const ArBasicKind g_ArBasicKindsAsTypes[] = {
14241428 AR_OBJECT_VK_BUFFER_POINTER, AR_OBJECT_VK_SAMPLED_TEXTURE1D,
14251429 AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2D,
14261430 AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2DMS,
1427- AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY,
1431+ AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE3D,
14281432#endif // ENABLE_SPIRV_CODEGEN
14291433 // SPIRV change ends
14301434
@@ -1542,6 +1546,7 @@ static const uint8_t g_ArBasicKindsTemplateCount[] = {
15421546 1, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
15431547 1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
15441548 1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
1549+ 1, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
15451550#endif // ENABLE_SPIRV_CODEGEN
15461551 // SPIRV change ends
15471552
@@ -1701,6 +1706,7 @@ static const SubscriptOperatorRecord g_ArBasicKindsSubscripts[] = {
17011706 {3, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
17021707 {2, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
17031708 {3, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
1709+ {3, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
17041710#endif // ENABLE_SPIRV_CODEGEN
17051711 // SPIRV change ends
17061712
@@ -1876,6 +1882,7 @@ static const char *g_ArBasicTypeNames[] = {
18761882 "SampledTexture2DArray",
18771883 "SampledTexture2DMS",
18781884 "SampledTexture2DMSArray",
1885+ "SampledTexture3D",
18791886#endif // ENABLE_SPIRV_CODEGEN
18801887 // SPIRV change ends
18811888
@@ -2556,6 +2563,10 @@ static void GetIntrinsicMethods(ArBasicKind kind,
25562563 *intrinsics = g_VkSampledTexture2DMSArrayMethods;
25572564 *intrinsicCount = _countof(g_VkSampledTexture2DMSArrayMethods);
25582565 break;
2566+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
2567+ *intrinsics = g_VkSampledTexture3DMethods;
2568+ *intrinsicCount = _countof(g_VkSampledTexture3DMethods);
2569+ break;
25592570#endif
25602571 case AR_OBJECT_HIT_OBJECT:
25612572 *intrinsics = g_DxHitObjectMethods;
@@ -4166,7 +4177,8 @@ class HLSLExternalSource : public ExternalSemaSource {
41664177 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D ||
41674178 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY ||
41684179 kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS ||
4169- kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY) {
4180+ kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY ||
4181+ kind == AR_OBJECT_VK_SAMPLED_TEXTURE3D) {
41704182 if (!m_vkNSDecl)
41714183 continue;
41724184 QualType float4Type =
@@ -5004,6 +5016,7 @@ class HLSLExternalSource : public ExternalSemaSource {
50045016#endif
50055017 case AR_OBJECT_TEXTURE2D:
50065018 case AR_OBJECT_TEXTURE2D_ARRAY:
5019+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
50075020 case AR_OBJECT_TEXTURE3D:
50085021 case AR_OBJECT_TEXTURECUBE:
50095022 case AR_OBJECT_TEXTURECUBE_ARRAY:
@@ -5154,6 +5167,9 @@ class HLSLExternalSource : public ExternalSemaSource {
51545167 ResClass = DXIL::ResourceClass::UAV;
51555168 return true;
51565169 case AR_OBJECT_TEXTURE3D:
5170+ #ifdef ENABLE_SPIRV_CODEGEN
5171+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
5172+ #endif
51575173 ResKind = DXIL::ResourceKind::Texture3D;
51585174 ResClass = DXIL::ResourceClass::SRV;
51595175 return true;
@@ -11735,6 +11751,7 @@ void hlsl::DiagnoseRegisterType(clang::Sema *self, clang::SourceLocation loc,
1173511751#endif
1173611752 case AR_OBJECT_TEXTURE2D:
1173711753 case AR_OBJECT_TEXTURE2D_ARRAY:
11754+ case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
1173811755 case AR_OBJECT_TEXTURE3D:
1173911756 case AR_OBJECT_TEXTURECUBE:
1174011757 case AR_OBJECT_TEXTURECUBE_ARRAY:
0 commit comments