Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions include/dxc/dxcapi.internal.h
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,13 @@ enum LEGAL_INTRINSIC_COMPTYPES {

#ifdef ENABLE_SPIRV_CODEGEN
LICOMPTYPE_VK_BUFFER_POINTER = 56,
LICOMPTYPE_VK_SAMPLED_TEXTURE2D = 57,
LICOMPTYPE_COUNT = 58
LICOMPTYPE_VK_SAMPLED_TEXTURE1D = 57,
LICOMPTYPE_VK_SAMPLED_TEXTURE1D_ARRAY = 58,
LICOMPTYPE_VK_SAMPLED_TEXTURE2D = 59,
LICOMPTYPE_VK_SAMPLED_TEXTURE2D_ARRAY = 60,
LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS = 61,
LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS_ARRAY = 62,
LICOMPTYPE_COUNT = 63
#else
LICOMPTYPE_COUNT = 56
#endif
Expand Down
4 changes: 4 additions & 0 deletions tools/clang/include/clang/SPIRV/AstTypeProbe.h
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,10 @@ bool isTexture(QualType);
/// Texture2DMSArray type.
bool isTextureMS(QualType);

/// \brief Returns true if the given type is an HLSL SampledTexture2DMS or
/// SampledTexture2DMSArray type.
bool isSampledTextureMS(QualType);

/// \brief Returns true if the given type is an HLSL SampledTexture type.
bool isSampledTexture(QualType);

Expand Down
2 changes: 0 additions & 2 deletions tools/clang/lib/AST/ASTContextHLSL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1376,8 +1376,6 @@ CXXRecordDecl *hlsl::DeclareVkSampledTextureType(ASTContext &context,
DeclContext *declContext,
llvm::StringRef hlslTypeName,
QualType defaultParamType) {
// TODO(https://github.com/microsoft/DirectXShaderCompiler/issues/7979): Later
// generalize these to all SampledTexture types.
BuiltinTypeDeclBuilder Builder(declContext, hlslTypeName,
TagDecl::TagKind::TTK_Struct);

Expand Down
14 changes: 13 additions & 1 deletion tools/clang/lib/SPIRV/AstTypeProbe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -931,7 +931,10 @@ bool isSampledTexture(QualType type) {
const auto name = rt->getDecl()->getName();
// TODO(https://github.com/microsoft/DirectXShaderCompiler/issues/7979): Add
// other sampled texture types as needed.
if (name == "SampledTexture2D")

if (name == "SampledTexture1D" || name == "SampledTexture1DArray" ||
name == "SampledTexture2D" || name == "SampledTexture2DArray" ||
name == "SampledTexture2DMS" || name == "SampledTexture2DMSArray")
return true;
}
return false;
Expand All @@ -946,6 +949,15 @@ bool isTextureMS(QualType type) {
return false;
}

bool isSampledTextureMS(QualType type) {
if (const auto *rt = type->getAs<RecordType>()) {
const auto name = rt->getDecl()->getName();
if (name == "SampledTexture2DMS" || name == "SampledTexture2DMSArray")
return true;
}
return false;
}

bool isSampler(QualType type) {
if (const auto *rt = type->getAs<RecordType>()) {
const auto name = rt->getDecl()->getName();
Expand Down
14 changes: 10 additions & 4 deletions tools/clang/lib/SPIRV/LowerTypeVisitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -849,7 +849,9 @@ const SpirvType *LowerTypeVisitor::lowerVkTypeInVkNamespace(
assert(visitedTypeStack.size() == visitedTypeStackSize);
return pointerType;
}
if (name == "SampledTexture2D") {
if (name == "SampledTexture1D" || name == "SampledTexture1DArray" ||
name == "SampledTexture2D" || name == "SampledTexture2DArray" ||
name == "SampledTexture2DMS" || name == "SampledTexture2DMSArray") {
const auto sampledType = hlsl::GetHLSLResourceResultType(type);
auto loweredType = lowerType(getElementType(astContext, sampledType), rule,
/*isRowMajor*/ llvm::None, srcLoc);
Expand All @@ -860,10 +862,14 @@ const SpirvType *LowerTypeVisitor::lowerVkTypeInVkNamespace(
loweredType = spvContext.getUIntType(32);
}

const spv::Dim dimension =
name.count("1D") > 0 ? spv::Dim::Dim1D : spv::Dim::Dim2D;
const bool isArray = name.count("Array") > 0;
const bool isMS = name.count("MS") > 0;

const auto *imageType = spvContext.getImageType(
loweredType, spv::Dim::Dim2D, ImageType::WithDepth::No,
false /* array */, false /* ms */, ImageType::WithSampler::Yes,
spv::ImageFormat::Unknown);
loweredType, dimension, ImageType::WithDepth::No, isArray, isMS,
ImageType::WithSampler::Yes, spv::ImageFormat::Unknown);
return spvContext.getSampledImageType(imageType);
}
emitError("unknown type %0 in vk namespace", srcLoc) << type;
Expand Down
25 changes: 21 additions & 4 deletions tools/clang/lib/SPIRV/SpirvEmitter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4283,9 +4283,21 @@ SpirvInstruction *SpirvEmitter::processRWByteAddressBufferAtomicMethods(
SpirvInstruction *
SpirvEmitter::processGetSamplePosition(const CXXMemberCallExpr *expr) {
const auto *object = expr->getImplicitObjectArgument()->IgnoreParens();
auto *objectInstr = loadIfGLValue(object);
if (isSampledTexture(object->getType())) {
LowerTypeVisitor lowerTypeVisitor(astContext, spvContext, spirvOptions,
spvBuilder);
const SpirvType *spvType =
lowerTypeVisitor.lowerType(object->getType(), SpirvLayoutRule::Void,
llvm::None, expr->getExprLoc());
const auto *sampledType = cast<SampledImageType>(spvType);
const SpirvType *imgType = sampledType->getImageType();
objectInstr = spvBuilder.createUnaryOp(spv::Op::OpImage, imgType,
objectInstr, expr->getExprLoc());
}
auto *sampleCount = spvBuilder.createImageQuery(
spv::Op::OpImageQuerySamples, astContext.UnsignedIntTy,
expr->getExprLoc(), loadIfGLValue(object));
expr->getExprLoc(), objectInstr);
if (!spirvOptions.noWarnEmulatedFeatures)
emitWarning("GetSamplePosition is emulated using many SPIR-V instructions "
"due to lack of direct SPIR-V equivalent, so it only supports "
Expand Down Expand Up @@ -4393,7 +4405,10 @@ SpirvEmitter::processBufferTextureGetDimensions(const CXXMemberCallExpr *expr) {

if ((typeName == "Texture1D" && numArgs > 1) ||
(typeName == "Texture2D" && numArgs > 2) ||
(typeName == "SampledTexture1D" && numArgs > 1) ||
(typeName == "SampledTexture1DArray" && numArgs > 2) ||
(typeName == "SampledTexture2D" && numArgs > 2) ||
(typeName == "SampledTexture2DArray" && numArgs > 3) ||
(typeName == "TextureCube" && numArgs > 2) ||
(typeName == "Texture3D" && numArgs > 3) ||
(typeName == "Texture1DArray" && numArgs > 2) ||
Expand All @@ -4402,7 +4417,8 @@ SpirvEmitter::processBufferTextureGetDimensions(const CXXMemberCallExpr *expr) {
mipLevel = expr->getArg(0);
numLevels = expr->getArg(numArgs - 1);
}
if (isTextureMS(type)) {

if (isSampledTextureMS(type) || isTextureMS(type)) {
numSamples = expr->getArg(numArgs - 1);
}

Expand Down Expand Up @@ -4743,7 +4759,7 @@ SpirvInstruction *SpirvEmitter::processBufferTextureLoad(

// For Texture2DMS and Texture2DMSArray, Sample must be used rather than Lod.
SpirvInstruction *sampleNumber = nullptr;
if (isTextureMS(type) || isSubpassInputMS(type)) {
if (isSampledTextureMS(type) || isTextureMS(type) || isSubpassInputMS(type)) {
sampleNumber = lod;
lod = nullptr;
}
Expand Down Expand Up @@ -6508,7 +6524,8 @@ SpirvEmitter::processBufferTextureLoad(const CXXMemberCallExpr *expr) {

const auto numArgs = expr->getNumArgs();
const auto *locationArg = expr->getArg(0);
const bool textureMS = isTextureMS(objectType);
const bool textureMS =
isTextureMS(objectType) || isSampledTextureMS(objectType);
const bool hasStatusArg =
expr->getArg(numArgs - 1)->getType()->isUnsignedIntegerType();
auto *status = hasStatusArg ? doExpr(expr->getArg(numArgs - 1)) : nullptr;
Expand Down
97 changes: 92 additions & 5 deletions tools/clang/lib/Sema/SemaHLSL.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,12 @@ enum ArBasicKind {
AR_OBJECT_VK_SPV_INTRINSIC_TYPE,
AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID,
AR_OBJECT_VK_BUFFER_POINTER,
AR_OBJECT_VK_SAMPLED_TEXTURE1D,
AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY,
AR_OBJECT_VK_SAMPLED_TEXTURE2D,
AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY,
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS,
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY,
#endif // ENABLE_SPIRV_CODEGEN
// SPIRV change ends

Expand Down Expand Up @@ -561,7 +566,12 @@ const UINT g_uBasicKindProps[] = {
BPROP_OBJECT, // AR_OBJECT_VK_SPV_INTRINSIC_TYPE use recordType
BPROP_OBJECT, // AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID use recordType
BPROP_OBJECT, // AR_OBJECT_VK_BUFFER_POINTER use recordType
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE1D
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2D
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
BPROP_OBJECT | BPROP_RBUFFER, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
#endif // ENABLE_SPIRV_CODEGEN
// SPIRV change ends

Expand Down Expand Up @@ -1270,8 +1280,18 @@ static const ArBasicKind g_LinAlgMatrixCT[] = {AR_OBJECT_LINALG_MATRIX,
#ifdef ENABLE_SPIRV_CODEGEN
static const ArBasicKind g_VKBufferPointerCT[] = {AR_OBJECT_VK_BUFFER_POINTER,
AR_BASIC_UNKNOWN};
static const ArBasicKind g_VKSampledTexture1DCT[] = {
AR_OBJECT_VK_SAMPLED_TEXTURE1D, AR_BASIC_UNKNOWN};
static const ArBasicKind g_VKSampledTexture1DArrayCT[] = {
AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY, AR_BASIC_UNKNOWN};
static const ArBasicKind g_VKSampledTexture2DCT[] = {
AR_OBJECT_VK_SAMPLED_TEXTURE2D, AR_BASIC_UNKNOWN};
static const ArBasicKind g_VKSampledTexture2DArrayCT[] = {
AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY, AR_BASIC_UNKNOWN};
static const ArBasicKind g_VKSampledTexture2DMSCT[] = {
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS, AR_BASIC_UNKNOWN};
static const ArBasicKind g_VKSampledTexture2DMSArrayCT[] = {
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY, AR_BASIC_UNKNOWN};
#endif

// Basic kinds, indexed by a LEGAL_INTRINSIC_COMPTYPES value.
Expand Down Expand Up @@ -1334,8 +1354,13 @@ const ArBasicKind *g_LegalIntrinsicCompTypes[] = {
g_LinAlgCT, // LICOMPTYPE_LINALG
g_BuiltInTrianglePositionsCT, // LICOMPTYPE_BUILTIN_TRIANGLE_POSITIONS
#ifdef ENABLE_SPIRV_CODEGEN
g_VKBufferPointerCT, // LICOMPTYPE_VK_BUFFER_POINTER
g_VKSampledTexture2DCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2D
g_VKBufferPointerCT, // LICOMPTYPE_VK_BUFFER_POINTER
g_VKSampledTexture1DCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE1D
g_VKSampledTexture1DArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE1D_ARRAY
g_VKSampledTexture2DCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2D
g_VKSampledTexture2DArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2D_ARRAY
g_VKSampledTexture2DMSCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS
g_VKSampledTexture2DMSArrayCT, // LICOMPTYPE_VK_SAMPLED_TEXTURE2DMS_ARRAY
#endif
};
static_assert(
Expand Down Expand Up @@ -1395,7 +1420,10 @@ static const ArBasicKind g_ArBasicKindsAsTypes[] = {
AR_OBJECT_VK_SPIRV_TYPE, AR_OBJECT_VK_SPIRV_OPAQUE_TYPE,
AR_OBJECT_VK_INTEGRAL_CONSTANT, AR_OBJECT_VK_LITERAL,
AR_OBJECT_VK_SPV_INTRINSIC_TYPE, AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID,
AR_OBJECT_VK_BUFFER_POINTER, AR_OBJECT_VK_SAMPLED_TEXTURE2D,
AR_OBJECT_VK_BUFFER_POINTER, AR_OBJECT_VK_SAMPLED_TEXTURE1D,
AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2D,
AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY, AR_OBJECT_VK_SAMPLED_TEXTURE2DMS,
AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY,
#endif // ENABLE_SPIRV_CODEGEN
// SPIRV change ends

Expand Down Expand Up @@ -1507,7 +1535,12 @@ static const uint8_t g_ArBasicKindsTemplateCount[] = {
1, // AR_OBJECT_VK_SPV_INTRINSIC_TYPE
1, // AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID
2, // AR_OBJECT_VK_BUFFER_POINTER
1, // AR_OBJECT_VK_SAMPLED_TEXTURE1D
1, // AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY
1, // AR_OBJECT_VK_SAMPLED_TEXTURE2D
1, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
1, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
#endif // ENABLE_SPIRV_CODEGEN
// SPIRV change ends

Expand Down Expand Up @@ -1661,7 +1694,12 @@ static const SubscriptOperatorRecord g_ArBasicKindsSubscripts[] = {
{0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SPV_INTRINSIC_TYPE
{0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_SPV_INTRINSIC_RESULT_ID
{0, MipsFalse, SampleFalse}, // AR_OBJECT_VK_BUFFER_POINTER
{1, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE1D
{2, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY
{2, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE2D
{3, MipsTrue, SampleFalse}, // AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY
{2, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS
{3, MipsFalse, SampleTrue}, // AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY
#endif // ENABLE_SPIRV_CODEGEN
// SPIRV change ends

Expand Down Expand Up @@ -1831,7 +1869,12 @@ static const char *g_ArBasicTypeNames[] = {
"ext_type",
"ext_result_id",
"BufferPointer",
"SampledTexture1D",
"SampledTexture1DArray",
"SampledTexture2D",
"SampledTexture2DArray",
"SampledTexture2DMS",
"SampledTexture2DMSArray",
#endif // ENABLE_SPIRV_CODEGEN
// SPIRV change ends

Expand Down Expand Up @@ -2485,10 +2528,30 @@ static void GetIntrinsicMethods(ArBasicKind kind,
*intrinsicCount = _countof(g_RayQueryMethods);
break;
#ifdef ENABLE_SPIRV_CODEGEN
case AR_OBJECT_VK_SAMPLED_TEXTURE1D:
*intrinsics = g_VkSampledTexture1DMethods;
*intrinsicCount = _countof(g_VkSampledTexture1DMethods);
break;
case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
*intrinsics = g_VkSampledTexture1DArrayMethods;
*intrinsicCount = _countof(g_VkSampledTexture1DArrayMethods);
break;
case AR_OBJECT_VK_SAMPLED_TEXTURE2D:
*intrinsics = g_VkSampledTexture2DMethods;
*intrinsicCount = _countof(g_VkSampledTexture2DMethods);
break;
case AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY:
*intrinsics = g_VkSampledTexture2DArrayMethods;
*intrinsicCount = _countof(g_VkSampledTexture2DArrayMethods);
break;
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS:
*intrinsics = g_VkSampledTexture2DMSMethods;
*intrinsicCount = _countof(g_VkSampledTexture2DMSMethods);
break;
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY:
*intrinsics = g_VkSampledTexture2DMSArrayMethods;
*intrinsicCount = _countof(g_VkSampledTexture2DMSArrayMethods);
break;
#endif
case AR_OBJECT_HIT_OBJECT:
*intrinsics = g_DxHitObjectMethods;
Expand Down Expand Up @@ -4094,13 +4157,18 @@ class HLSLExternalSource : public ExternalSemaSource {
recordDecl = DeclareVkBufferPointerType(*m_context, m_vkNSDecl);
recordDecl->setImplicit(true);
m_vkBufferPointerTemplateDecl = recordDecl->getDescribedClassTemplate();
} else if (kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D) {
} else if (kind == AR_OBJECT_VK_SAMPLED_TEXTURE1D ||
kind == AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY ||
kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D ||
kind == AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY ||
kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS ||
kind == AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY) {
if (!m_vkNSDecl)
continue;
QualType float4Type =
LookupVectorType(HLSLScalarType::HLSLScalarType_float, 4);
recordDecl = DeclareVkSampledTextureType(
*m_context, m_vkNSDecl, "SampledTexture2D", float4Type);
*m_context, m_vkNSDecl, g_ArBasicTypeNames[kind], float4Type);
if (Attr)
recordDecl->addAttr(Attr);
m_vkSampledTextureTemplateDecl =
Expand Down Expand Up @@ -4925,7 +4993,9 @@ class HLSLExternalSource : public ExternalSemaSource {
case AR_OBJECT_LEGACY_EFFECT: // used for all legacy effect object types

case AR_OBJECT_TEXTURE1D:
case AR_OBJECT_VK_SAMPLED_TEXTURE1D:
case AR_OBJECT_TEXTURE1D_ARRAY:
case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
case AR_OBJECT_TEXTURE2D:
case AR_OBJECT_TEXTURE2D_ARRAY:
case AR_OBJECT_TEXTURE3D:
Expand Down Expand Up @@ -5030,6 +5100,9 @@ class HLSLExternalSource : public ExternalSemaSource {
DXASSERT_VALIDBASICKIND(BasicKind);
switch (BasicKind) {
case AR_OBJECT_TEXTURE1D:
#ifdef ENABLE_SPIRV_CODEGEN
case AR_OBJECT_VK_SAMPLED_TEXTURE1D:
#endif
ResKind = DXIL::ResourceKind::Texture1D;
ResClass = DXIL::ResourceClass::SRV;
return true;
Expand All @@ -5039,6 +5112,9 @@ class HLSLExternalSource : public ExternalSemaSource {
ResClass = DXIL::ResourceClass::UAV;
return true;
case AR_OBJECT_TEXTURE1D_ARRAY:
#ifdef ENABLE_SPIRV_CODEGEN
case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
#endif
ResKind = DXIL::ResourceKind::Texture1DArray;
ResClass = DXIL::ResourceClass::SRV;
return true;
Expand All @@ -5060,6 +5136,9 @@ class HLSLExternalSource : public ExternalSemaSource {
ResClass = DXIL::ResourceClass::UAV;
return true;
case AR_OBJECT_TEXTURE2D_ARRAY:
#ifdef ENABLE_SPIRV_CODEGEN
case AR_OBJECT_VK_SAMPLED_TEXTURE2D_ARRAY:
#endif
ResKind = DXIL::ResourceKind::Texture2DArray;
ResClass = DXIL::ResourceClass::SRV;
return true;
Expand All @@ -5086,6 +5165,9 @@ class HLSLExternalSource : public ExternalSemaSource {
ResClass = DXIL::ResourceClass::SRV;
return true;
case AR_OBJECT_TEXTURE2DMS:
#ifdef ENABLE_SPIRV_CODEGEN
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS:
#endif
ResKind = DXIL::ResourceKind::Texture2DMS;
ResClass = DXIL::ResourceClass::SRV;
return true;
Expand All @@ -5094,6 +5176,9 @@ class HLSLExternalSource : public ExternalSemaSource {
ResClass = DXIL::ResourceClass::UAV;
return true;
case AR_OBJECT_TEXTURE2DMS_ARRAY:
#ifdef ENABLE_SPIRV_CODEGEN
case AR_OBJECT_VK_SAMPLED_TEXTURE2DMS_ARRAY:
#endif
ResKind = DXIL::ResourceKind::Texture2DMSArray;
ResClass = DXIL::ResourceClass::SRV;
return true;
Expand Down Expand Up @@ -11619,7 +11704,9 @@ void hlsl::DiagnoseRegisterType(clang::Sema *self, clang::SourceLocation loc,
break;

case AR_OBJECT_TEXTURE1D:
case AR_OBJECT_VK_SAMPLED_TEXTURE1D:
case AR_OBJECT_TEXTURE1D_ARRAY:
case AR_OBJECT_VK_SAMPLED_TEXTURE1D_ARRAY:
case AR_OBJECT_TEXTURE2D:
case AR_OBJECT_TEXTURE2D_ARRAY:
case AR_OBJECT_TEXTURE3D:
Expand Down
Loading