Skip to content

Commit 73d8863

Browse files
committed
SampledTextureCUBE, SampledTextureCUBEArray
1 parent 553e9e7 commit 73d8863

File tree

54 files changed

+1212
-17
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+1212
-17
lines changed

include/dxc/dxcapi.internal.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,9 @@ enum LEGAL_INTRINSIC_COMPTYPES {
147147
LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS = 61,
148148
LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS_ARRAY = 62,
149149
LICOMPTYPE_VK_SAMPLED_TEXTURE3D = 63,
150-
LICOMPTYPE_COUNT = 64
150+
LICOMPTYPE_VK_SAMPLED_TEXTURECUBE = 64,
151+
LICOMPTYPE_VK_SAMPLED_TEXTURECUBE_ARRAY = 65,
152+
LICOMPTYPE_COUNT = 66
151153
#else
152154
LICOMPTYPE_COUNT = 56
153155
#endif

tools/clang/lib/SPIRV/LowerTypeVisitor.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -866,7 +866,10 @@ const SpirvType *LowerTypeVisitor::lowerVkTypeInVkNamespace(
866866
const spv::Dim dimension =
867867
suffix.startswith("1D")
868868
? spv::Dim::Dim1D
869-
: (suffix.startswith("2D") ? spv::Dim::Dim2D : spv::Dim::Dim3D);
869+
: (suffix.startswith("2D")
870+
? spv::Dim::Dim2D
871+
: (suffix.startswith("3D") ? spv::Dim::Dim3D
872+
: spv::Dim::Cube));
870873
const bool isArray = suffix.endswith("Array");
871874
const bool isMS = suffix.find("MS") != StringRef::npos;
872875

tools/clang/lib/SPIRV/SpirvEmitter.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4417,6 +4417,8 @@ SpirvEmitter::processBufferTextureGetDimensions(const CXXMemberCallExpr *expr) {
44174417
(typeName == "SampledTexture1DArray" && numArgs > 2) ||
44184418
(typeName == "SampledTexture2D" && numArgs > 2) ||
44194419
(typeName == "SampledTexture2DArray" && numArgs > 3) ||
4420+
(typeName == "SampledTextureCUBE" && numArgs > 2) ||
4421+
(typeName == "SampledTextureCUBEArray" && numArgs > 3) ||
44204422
(typeName == "SampledTexture3D" && numArgs > 3) ||
44214423
(typeName == "TextureCube" && numArgs > 2) ||
44224424
(typeName == "Texture3D" && numArgs > 3) ||

tools/clang/lib/Sema/SemaHLSL.cpp

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,8 @@ 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_TEXTURECUBE,
210+
AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY,
209211
AR_OBJECT_VK_SAMPLED_TEXTURE3D,
210212
#endif // ENABLE_SPIRV_CODEGEN
211213
// SPIRV change ends
@@ -573,6 +575,8 @@ const UINT g_uBasicKindProps[] = {
573575
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
574576
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
575577
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
578+
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURECUBE
579+
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY
576580
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
577581
#endif // ENABLE_SPIRV_CODEGEN
578582
// SPIRV change ends
@@ -1294,6 +1298,10 @@ static const ArBasicKind g_VKSampledTexture2DMSCT[] = {
12941298
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS, AR_BASIC_UNKNOWN};
12951299
static const ArBasicKind g_VKSampledTexture2DMSArrayCT[] = {
12961300
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_BASIC_UNKNOWN};
1301+
static const ArBasicKind g_VKSampledTextureCUBECT[] = {
1302+
AR_OBJECT_VK_SAMPLED_TEXTURECUBE, AR_BASIC_UNKNOWN};
1303+
static const ArBasicKind g_VKSampledTextureCUBEArrayCT[] = {
1304+
AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY, AR_BASIC_UNKNOWN};
12971305
static const ArBasicKind g_VKSampledTexture3DCT[] = {
12981306
AR_OBJECT_VK_SAMPLED_TEXTURE3D, AR_BASIC_UNKNOWN};
12991307
#endif
@@ -1365,6 +1373,8 @@ const ArBasicKind *g_LegalIntrinsicCompTypes[] = {
13651373
g_VKSampledTexture2DArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2D_ARRAY
13661374
g_VKSampledTexture2DMSCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS
13671375
g_VKSampledTexture2DMSArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS_ARRAY
1376+
g_VKSampledTextureCUBECT, // LICOMPTYPE_VK_SAMPLED_TEXTURECUBE
1377+
g_VKSampledTextureCUBEArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURECUBE_ARRAY
13681378
g_VKSampledTexture3DCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE3D
13691379
#endif
13701380
};
@@ -1428,7 +1438,8 @@ static const ArBasicKind g_ArBasicKindsAsTypes[] = {
14281438
AR_OBJECT_VK_BUFFER_POINTER, AR_OBJECT_VK_SAMPLED_TEXTURE1D,
14291439
AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2D,
14301440
AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2DMS,
1431-
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE3D,
1441+
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURECUBE,
1442+
AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE3D,
14321443
#endif // ENABLE_SPIRV_CODEGEN
14331444
// SPIRV change ends
14341445

@@ -1546,6 +1557,8 @@ static const uint8_t g_ArBasicKindsTemplateCount[] = {
15461557
1, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
15471558
1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
15481559
1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
1560+
1, // AR_OBJECT_VK_SAMPLED_TEXTURECUBE
1561+
1, // AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY
15491562
1, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
15501563
#endif // ENABLE_SPIRV_CODEGEN
15511564
// SPIRV change ends
@@ -1706,6 +1719,8 @@ static const SubscriptOperatorRecord g_ArBasicKindsSubscripts[] = {
17061719
{3, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
17071720
{2, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
17081721
{3, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
1722+
{0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURECUBE
1723+
{0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY
17091724
{3, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE3D
17101725
#endif // ENABLE_SPIRV_CODEGEN
17111726
// SPIRV change ends
@@ -1882,6 +1897,8 @@ static const char *g_ArBasicTypeNames[] = {
18821897
"SampledTexture2DArray",
18831898
"SampledTexture2DMS",
18841899
"SampledTexture2DMSArray",
1900+
"SampledTextureCUBE",
1901+
"SampledTextureCUBEArray",
18851902
"SampledTexture3D",
18861903
#endif // ENABLE_SPIRV_CODEGEN
18871904
// SPIRV change ends
@@ -2563,6 +2580,14 @@ static void GetIntrinsicMethods(ArBasicKind kind,
25632580
*intrinsics = g_VkSampledTexture2DMSArrayMethods;
25642581
*intrinsicCount = _countof(g_VkSampledTexture2DMSArrayMethods);
25652582
break;
2583+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE:
2584+
*intrinsics = g_VkSampledTextureCUBEMethods;
2585+
*intrinsicCount = _countof(g_VkSampledTextureCUBEMethods);
2586+
break;
2587+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY:
2588+
*intrinsics = g_VkSampledTextureCUBEArrayMethods;
2589+
*intrinsicCount = _countof(g_VkSampledTextureCUBEArrayMethods);
2590+
break;
25662591
case AR_OBJECT_VK_SAMPLED_TEXTURE3D:
25672592
*intrinsics = g_VkSampledTexture3DMethods;
25682593
*intrinsicCount = _countof(g_VkSampledTexture3DMethods);
@@ -4178,7 +4203,9 @@ class HLSLExternalSource : public ExternalSemaSource {
41784203
kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY ||
41794204
kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS ||
41804205
kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY ||
4181-
kind == AR_OBJECT_VK_SAMPLED_TEXTURE3D) {
4206+
kind == AR_OBJECT_VK_SAMPLED_TEXTURE3D ||
4207+
kind == AR_OBJECT_VK_SAMPLED_TEXTURECUBE ||
4208+
kind == AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY) {
41824209
if (!m_vkNSDecl)
41834210
continue;
41844211
QualType float4Type =
@@ -5013,12 +5040,18 @@ class HLSLExternalSource : public ExternalSemaSource {
50135040
case AR_OBJECT_TEXTURE1D_ARRAY:
50145041
case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
50155042
case AR_OBJECT_TEXTURE2D:
5043+
case AR_OBJECT_VK_SAMPLED_TEXTURE2D:
50165044
case AR_OBJECT_TEXTURE2D_ARRAY:
5045+
case AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY:
50175046
case AR_OBJECT_TEXTURE3D:
50185047
case AR_OBJECT_TEXTURECUBE:
5048+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE:
50195049
case AR_OBJECT_TEXTURECUBE_ARRAY:
5050+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY:
50205051
case AR_OBJECT_TEXTURE2DMS:
5052+
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS:
50215053
case AR_OBJECT_TEXTURE2DMS_ARRAY:
5054+
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY:
50225055

50235056
case AR_OBJECT_SAMPLER:
50245057
case AR_OBJECT_SAMPLERCOMPARISON:
@@ -5176,10 +5209,16 @@ class HLSLExternalSource : public ExternalSemaSource {
51765209
ResClass = DXIL::ResourceClass::UAV;
51775210
return true;
51785211
case AR_OBJECT_TEXTURECUBE:
5212+
#ifdef ENABLE_SPIRV_CODEGEN
5213+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE:
5214+
#endif
51795215
ResKind = DXIL::ResourceKind::TextureCube;
51805216
ResClass = DXIL::ResourceClass::SRV;
51815217
return true;
51825218
case AR_OBJECT_TEXTURECUBE_ARRAY:
5219+
#ifdef ENABLE_SPIRV_CODEGEN
5220+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY:
5221+
#endif
51835222
ResKind = DXIL::ResourceKind::TextureCubeArray;
51845223
ResClass = DXIL::ResourceClass::SRV;
51855224
return true;
@@ -11746,12 +11785,18 @@ void hlsl::DiagnoseRegisterType(clang::Sema *self, clang::SourceLocation loc,
1174611785
case AR_OBJECT_TEXTURE1D_ARRAY:
1174711786
case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
1174811787
case AR_OBJECT_TEXTURE2D:
11788+
case AR_OBJECT_VK_SAMPLED_TEXTURE2D:
1174911789
case AR_OBJECT_TEXTURE2D_ARRAY:
11790+
case AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY:
1175011791
case AR_OBJECT_TEXTURE3D:
1175111792
case AR_OBJECT_TEXTURECUBE:
11793+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE:
1175211794
case AR_OBJECT_TEXTURECUBE_ARRAY:
11795+
case AR_OBJECT_VK_SAMPLED_TEXTURECUBE_ARRAY:
1175311796
case AR_OBJECT_TEXTURE2DMS:
11797+
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS:
1175411798
case AR_OBJECT_TEXTURE2DMS_ARRAY:
11799+
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY:
1175511800
expected = "'t' or 's'";
1175611801
isValid = registerType == 't' || registerType == 's';
1175711802
break;

tools/clang/test/CodeGenSPIRV/SampledTexture/SampledTexture2D/vk.sampledtexture2d.gather-cmp-red.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
// CHECK: [[v2fc:%[0-9]+]] = OpConstantComposite %v2float %float_0_5 %float_0_25
66
// CHECK: [[v2ic:%[0-9]+]] = OpConstantComposite %v2int %int_2 %int_3
7-
// CHECK: [[v3fc:%[0-9]+]] = OpConstantComposite %v3float %float_0_5 %float_0_25 %float_0
87

98
// CHECK: [[type_2d_image:%[a-zA-Z0-9_]+]] = OpTypeImage %float 2D 0 0 0 1 Unknown
109
// CHECK: [[type_2d_sampled_image:%[a-zA-Z0-9_]+]] = OpTypeSampledImage [[type_2d_image]]

tools/clang/test/CodeGenSPIRV/SampledTexture/SampledTexture2D/vk.sampledtexture2d.sample-cmp-bias.hlsl

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,6 @@ float4 main() : SV_Target {
4141
// CHECK: [[sampled_1d:%[a-zA-Z0-9_]+]] = OpImageSampleDrefImplicitLod %float [[tex1d_load]] %float_0_5 %float_1 Bias %float_0_5
4242
float val5 = tex1d.SampleCmpBias(0.5, 1.0f, 0.5f);
4343

44-
// CHECK: [[tex1da_load:%[a-zA-Z0-9_]+]] = OpLoad [[type_1d_sampled_image_array]] %tex1dArray
45-
// CHECK: [[sampled_1da:%[a-zA-Z0-9_]+]] = OpImageSampleDrefImplicitLod %float [[tex1da_load]] {{%[0-9]+}} %float_1 Bias %float_0_5
46-
float val6 = tex1dArray.SampleCmpBias(float2(0.5, 0), 1.0f, 0.5f);
47-
48-
// CHECK: [[tex1d_load:%[a-zA-Z0-9_]+]] = OpLoad [[type_1d_sampled_image]] %tex1d
49-
// CHECK: [[sampled_1d:%[a-zA-Z0-9_]+]] = OpImageSampleDrefImplicitLod %float [[tex1d_load]] %float_0_5 %float_1 Bias %float_0_5
50-
float val5 = tex1d.SampleCmpBias(0.5, 1.0f, 0.5f);
51-
5244
// CHECK: [[tex1da_load:%[a-zA-Z0-9_]+]] = OpLoad [[type_1d_sampled_image_array]] %tex1dArray
5345
// CHECK: [[sampled_1da:%[a-zA-Z0-9_]+]] = OpImageSampleDrefImplicitLod %float [[tex1da_load]] {{%[0-9]+}} %float_1 Bias %float_0_5
5446
float val6 = tex1dArray.SampleCmpBias(float2(0.5, 0), 1.0f, 0.5f);

tools/clang/test/CodeGenSPIRV/SampledTexture/SampledTexture2D/vk.sampledtexture2d.sample-cmp-level-zero.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
// CHECK: [[v2fc:%[0-9]+]] = OpConstantComposite %v2float %float_0_5 %float_0_25
66
// CHECK: [[v2ic:%[0-9]+]] = OpConstantComposite %v2int %int_2 %int_3
7-
// CHECK: [[v3fc:%[0-9]+]] = OpConstantComposite %v3float %float_0_5 %float_0_25 %float_0
87

98
// CHECK: [[type_1d_image:%[a-zA-Z0-9_]+]] = OpTypeImage %float 1D 0 0 0 1 Unknown
109
// CHECK: [[type_1d_sampled_image:%[a-zA-Z0-9_]+]] = OpTypeSampledImage [[type_1d_image]]

tools/clang/test/CodeGenSPIRV/SampledTexture/SampledTexture2D/vk.sampledtexture2d.sample-cmp-level.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
// CHECK: [[v2fc:%[0-9]+]] = OpConstantComposite %v2float %float_0_5 %float_0_25
66
// CHECK: [[v2ic:%[0-9]+]] = OpConstantComposite %v2int %int_2 %int_3
7-
// CHECK: [[v3fc:%[0-9]+]] = OpConstantComposite %v3float %float_0_5 %float_0_25 %float_0
87

98
// CHECK: [[type_1d_image:%[a-zA-Z0-9_]+]] = OpTypeImage %float 1D 0 0 0 1 Unknown
109
// CHECK: [[type_1d_sampled_image:%[a-zA-Z0-9_]+]] = OpTypeSampledImage [[type_1d_image]]

tools/clang/test/CodeGenSPIRV/SampledTexture/SampledTexture2D/vk.sampledtexture2d.sample-cmp.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55

66
// CHECK: [[v2fc:%[0-9]+]] = OpConstantComposite %v2float %float_0_5 %float_0_25
77
// CHECK: [[v2ic:%[0-9]+]] = OpConstantComposite %v2int %int_2 %int_3
8-
// CHECK: [[v3fc:%[0-9]+]] = OpConstantComposite %v3float %float_0_5 %float_0_25 %float_0
98

109
// CHECK: [[type_1d_image:%[a-zA-Z0-9_]+]] = OpTypeImage %float 1D 0 0 0 1 Unknown
1110
// CHECK: [[type_1d_sampled_image:%[a-zA-Z0-9_]+]] = OpTypeSampledImage [[type_1d_image]]

tools/clang/test/CodeGenSPIRV/SampledTexture/SampledTexture2D/vk.sampledtexture2d.sample-grad.hlsl

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
// CHECK: [[v2f_1:%[0-9]+]] = OpConstantComposite %v2float %float_1 %float_1
88
// CHECK: [[v2f_2:%[0-9]+]] = OpConstantComposite %v2float %float_2 %float_2
99
// CHECK: [[v2ic:%[0-9]+]] = OpConstantComposite %v2int %int_2 %int_3
10-
// CHECK: [[v3fc:%[0-9]+]] = OpConstantComposite %v3float %float_0_5 %float_0_25 %float_0
1110

1211
// CHECK: [[type_1d_image:%[a-zA-Z0-9_]+]] = OpTypeImage %float 1D 0 0 0 1 Unknown
1312
// CHECK: [[type_1d_sampled_image:%[a-zA-Z0-9_]+]] = OpTypeSampledImage [[type_1d_image]]

0 commit comments

Comments
 (0)