Author: Deric C. Date: 2026-08-31T17:05:19-07:00 New Revision: f8e42858e2b46c202b2f9308cc5020c2e426d946
URL: https://github.com/llvm/llvm-project/commit/f8e42858e2b46c202b2f9308cc5020c2e426d946 DIFF: https://github.com/llvm/llvm-project/commit/f8e42858e2b46c202b2f9308cc5020c2e426d946.diff LOG: [HLSL] Implement TextureCubeArray resource type (#218521) Fixes https://github.com/llvm/llvm-project/issues/194948 This PR adds the TextureCubeArray type to HLSL. A rather straight-forward change since TextureCube and array textures were already implemented before. There are a couple test changes to accomodate the combination of cube with array textures. Assisted by: Claude Opus 5 --- <sub>Stack created with <a href="https://github.com/github/gh-stack">GitHub Stacks CLI</a> • <a href="https://gh.io/stacks-feedback">Give Feedback 💬</a></sub> Added: Modified: clang/lib/CodeGen/Targets/DirectX.cpp clang/lib/Sema/HLSLExternalSemaSource.cpp clang/test/AST/HLSL/Textures-scalar-AST.hlsl clang/test/AST/HLSL/Textures-shorthand-AST.hlsl clang/test/AST/HLSL/Textures-vector-AST.hlsl clang/test/CodeGenHLSL/resources/Textures-CalculateLevelOfDetail.hlsl clang/test/CodeGenHLSL/resources/Textures-Gather.hlsl clang/test/CodeGenHLSL/resources/Textures-Sample.hlsl clang/test/CodeGenHLSL/resources/Textures-SampleBias.hlsl clang/test/CodeGenHLSL/resources/Textures-SampleCmp.hlsl clang/test/CodeGenHLSL/resources/Textures-SampleCmpLevelZero.hlsl clang/test/CodeGenHLSL/resources/Textures-SampleGrad.hlsl clang/test/CodeGenHLSL/resources/Textures-SampleLevel.hlsl clang/test/CodeGenHLSL/resources/Textures-default-explicit-binding.hlsl clang/test/CodeGenHLSL/resources/Textures-default.hlsl clang/test/CodeGenHLSL/resources/Textures-shorthand-contexts.hlsl clang/test/SemaHLSL/Resources/Textures-CalculateLevelOfDetail.hlsl clang/test/SemaHLSL/Resources/Textures-SampleBias.hlsl clang/test/SemaHLSL/Resources/Textures-SampleCmp.hlsl clang/test/SemaHLSL/Resources/Textures-SampleCmpLevelZero.hlsl clang/test/SemaHLSL/Resources/Textures-SampleGrad.hlsl clang/test/SemaHLSL/Resources/Textures-SampleLevel.hlsl clang/test/SemaHLSL/Resources/Textures-Sema.hlsl clang/test/SemaHLSL/Resources/Textures-declaration-order.hlsl clang/test/SemaHLSL/Resources/Textures-mips-errors.hlsl clang/test/SemaHLSL/Resources/Textures-unsupported-methods-errors.hlsl Removed: ################################################################################ diff --git a/clang/lib/CodeGen/Targets/DirectX.cpp b/clang/lib/CodeGen/Targets/DirectX.cpp index 6240a64b6a539..e2c918d861e35 100644 --- a/clang/lib/CodeGen/Targets/DirectX.cpp +++ b/clang/lib/CodeGen/Targets/DirectX.cpp @@ -123,7 +123,8 @@ llvm::Type *DirectXTargetCodeGenInfo::getHLSLType( RK = llvm::dxil::ResourceKind::Texture3D; break; case llvm::dxil::ResourceDimension::Cube: - RK = llvm::dxil::ResourceKind::TextureCube; + RK = ResAttrs.IsArray ? llvm::dxil::ResourceKind::TextureCubeArray + : llvm::dxil::ResourceKind::TextureCube; break; default: llvm_unreachable("Unsupported resource dimension for texture."); diff --git a/clang/lib/Sema/HLSLExternalSemaSource.cpp b/clang/lib/Sema/HLSLExternalSemaSource.cpp index bd0de86f2759d..08e7367766fcb 100644 --- a/clang/lib/Sema/HLSLExternalSemaSource.cpp +++ b/clang/lib/Sema/HLSLExternalSemaSource.cpp @@ -296,14 +296,13 @@ static BuiltinTypeDeclBuilder setupRWTextureType(CXXRecordDecl *Decl, Sema &S, .addStaticInitializationFunctions(false); } -/// Set up TextureCube type: SRV cube texture. Locations are float3 direction -/// vectors into the cube rather than texel coordinates, so cube textures have -/// no Load, no operator[] and no mips member. Their sampling and gather -/// methods also have no offset overloads. -static BuiltinTypeDeclBuilder setupTextureCubeType(CXXRecordDecl *Decl, - Sema &S) { +/// Set up TextureCube and TextureCubeArray types: SRV cube textures. Locations +/// are direction vectors into the cube rather than texel coordinates, so cube +/// textures have no Load, no operator[] and no mips member. Their sampling and +/// gather methods also have no offset overloads. +static BuiltinTypeDeclBuilder setupTextureCubeType(CXXRecordDecl *Decl, Sema &S, + bool IsArray) { constexpr ResourceDimension Dim = ResourceDimension::Cube; - constexpr bool IsArray = false; return BuiltinTypeDeclBuilder(S, Decl) .addTextureHandle(ResourceClass::SRV, /*IsROV=*/false, IsArray, Dim) .addDefaultHandleConstructor() @@ -842,13 +841,32 @@ void HLSLExternalSemaSource::defineHLSLTypesWithForwardDeclarations() { .finalizeForwardDeclaration(); onCompletion(Decl, [this](CXXRecordDecl *Decl) { - setupTextureCubeType(Decl, *SemaPtr).completeDefinition(); + setupTextureCubeType(Decl, *SemaPtr, /*IsArray=*/false) + .completeDefinition(); }); auto *PartialSpecCube = addVectorTexturePartialSpecialization( *SemaPtr, HLSLNamespace, Decl->getDescribedClassTemplate()); onCompletion(PartialSpecCube, [this](CXXRecordDecl *Decl) { - setupTextureCubeType(Decl, *SemaPtr).completeDefinition(); + setupTextureCubeType(Decl, *SemaPtr, /*IsArray=*/false) + .completeDefinition(); + }); + + // TextureCubeArray — same as TextureCube but IsArray=true, so locations gain + // an array slice and are float4. + Decl = BuiltinTypeDeclBuilder(*SemaPtr, HLSLNamespace, "TextureCubeArray") + .addSimpleTemplateParams({"element_type"}, {Float4Ty}, + TypedBufferConcept) + .finalizeForwardDeclaration(); + + onCompletion(Decl, [this](CXXRecordDecl *Decl) { + setupTextureCubeType(Decl, *SemaPtr, /*IsArray=*/true).completeDefinition(); + }); + + auto *PartialSpecCubeArray = addVectorTexturePartialSpecialization( + *SemaPtr, HLSLNamespace, Decl->getDescribedClassTemplate()); + onCompletion(PartialSpecCubeArray, [this](CXXRecordDecl *Decl) { + setupTextureCubeType(Decl, *SemaPtr, /*IsArray=*/true).completeDefinition(); }); } diff --git a/clang/test/AST/HLSL/Textures-scalar-AST.hlsl b/clang/test/AST/HLSL/Textures-scalar-AST.hlsl index ab3d517d39ad9..d7c3602672675 100644 --- a/clang/test/AST/HLSL/Textures-scalar-AST.hlsl +++ b/clang/test/AST/HLSL/Textures-scalar-AST.hlsl @@ -5,12 +5,19 @@ // RUN: %s \ // RUN: | FileCheck %s --check-prefixes=CHECK,TEXEL,OFFSET,GETDIM-XY \ // RUN: -DTEXTURE=Texture2D -DDIM_NAME=2D -DDIM=2 -DCOORD_DIM=2 -DLOAD_DIM=3 \ -// RUN: -DINDEX_TYPE="vector<unsigned int, 2>" +// RUN: -DINDEX_TYPE="vector<unsigned int, 2>" -DIS_ARRAY="" // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ // RUN: -disable-llvm-passes -finclude-default-header -DTEXTURE=TextureCube \ // RUN: -DCOORD_TYPE=float3 -DGRAD_TYPE=float3 -DLOD_LOCATION=loc -o - %s \ // RUN: | FileCheck %s --check-prefixes=CHECK -DTEXTURE=TextureCube \ -// RUN: -DDIM_NAME=Cube -DDIM=3 -DCOORD_DIM=3 +// RUN: -DDIM_NAME=Cube -DDIM=3 -DCOORD_DIM=3 -DIS_ARRAY="" +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ +// RUN: -disable-llvm-passes -finclude-default-header \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 -DGRAD_TYPE=float3 \ +// RUN: -DLOD_LOCATION=loc.xyz -o - %s \ +// RUN: | FileCheck %s --check-prefixes=CHECK -DTEXTURE=TextureCubeArray \ +// RUN: -DDIM_NAME=Cube -DDIM=3 -DCOORD_DIM=4 \ +// RUN: -DIS_ARRAY=" [[hlsl::is_array]]" // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ // RUN: -disable-llvm-passes -finclude-default-header -DHAS_OFFSET \ // RUN: -DHAS_GETDIM_XY -DTEXTURE=Texture2DArray -DCOORD_TYPE=float3 \ @@ -18,7 +25,8 @@ // RUN: -o - %s \ // RUN: | FileCheck %s --check-prefixes=CHECK,ARRAY,TEXEL,OFFSET,GETDIM-XY \ // RUN: -DTEXTURE=Texture2DArray -DDIM_NAME=2D -DDIM=2 -DCOORD_DIM=3 \ -// RUN: -DLOAD_DIM=4 -DINDEX_TYPE="vector<unsigned int, 3>" +// RUN: -DLOAD_DIM=4 -DINDEX_TYPE="vector<unsigned int, 3>" \ +// RUN: -DIS_ARRAY=" [[hlsl::is_array]]" // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. @@ -49,6 +57,8 @@ // overloads // GETDIM-XY the width/height GetDimensions overloads exist // ARRAY the resource has an array slice +// IS_ARRAY the [[hlsl::is_array]] attribute on arrayed resources, +// or empty // CHECK: CXXRecordDecl {{.*}} SamplerState definition // CHECK: FinalAttr {{.*}} Implicit final @@ -65,9 +75,7 @@ // CHECK: CXXRecordDecl {{.*}} [[TEXTURE]] definition // CHECK: FinalAttr {{.*}} Implicit final // CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // TEXEL: CXXMethodDecl {{.*}} Load 'element_type (vector<int, [[LOAD_DIM]]>)' @@ -133,9 +141,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this @@ -206,9 +212,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_bias' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this @@ -285,9 +289,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_grad' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this @@ -368,9 +370,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_level' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this @@ -418,9 +418,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this @@ -496,9 +494,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp_level_zero' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this @@ -545,9 +541,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_calculate_lod' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this @@ -567,9 +561,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_calculate_lod_unclamped' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(element_type){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<element_type>' lvalue implicit this diff --git a/clang/test/AST/HLSL/Textures-shorthand-AST.hlsl b/clang/test/AST/HLSL/Textures-shorthand-AST.hlsl index 238c56f9165f7..f30bd9e85d3b9 100644 --- a/clang/test/AST/HLSL/Textures-shorthand-AST.hlsl +++ b/clang/test/AST/HLSL/Textures-shorthand-AST.hlsl @@ -8,6 +8,10 @@ // RUN: | FileCheck %s -DTEXTURE=TextureCube // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ // RUN: -disable-llvm-passes -finclude-default-header \ +// RUN: -DTEXTURE=TextureCubeArray -o - %s \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ +// RUN: -disable-llvm-passes -finclude-default-header \ // RUN: -DTEXTURE=Texture2DArray -o - %s \ // RUN: | FileCheck %s -DTEXTURE=Texture2DArray diff --git a/clang/test/AST/HLSL/Textures-vector-AST.hlsl b/clang/test/AST/HLSL/Textures-vector-AST.hlsl index 94ff44b123768..1600c689d629b 100644 --- a/clang/test/AST/HLSL/Textures-vector-AST.hlsl +++ b/clang/test/AST/HLSL/Textures-vector-AST.hlsl @@ -5,12 +5,19 @@ // RUN: %s \ // RUN: | FileCheck %s --check-prefixes=CHECK,TEXEL,OFFSET,GETDIM-XY \ // RUN: -DTEXTURE=Texture2D -DDIM_NAME=2D -DDIM=2 -DCOORD_DIM=2 -DLOAD_DIM=3 \ -// RUN: -DINDEX_TYPE="vector<unsigned int, 2>" +// RUN: -DINDEX_TYPE="vector<unsigned int, 2>" -DIS_ARRAY="" // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ // RUN: -disable-llvm-passes -finclude-default-header -DTEXTURE=TextureCube \ // RUN: -DCOORD_TYPE=float3 -DGRAD_TYPE=float3 -DLOD_LOCATION=loc -o - %s \ // RUN: | FileCheck %s --check-prefixes=CHECK -DTEXTURE=TextureCube \ -// RUN: -DDIM_NAME=Cube -DDIM=3 -DCOORD_DIM=3 +// RUN: -DDIM_NAME=Cube -DDIM=3 -DCOORD_DIM=3 -DIS_ARRAY="" +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ +// RUN: -disable-llvm-passes -finclude-default-header \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 -DGRAD_TYPE=float3 \ +// RUN: -DLOD_LOCATION=loc.xyz -o - %s \ +// RUN: | FileCheck %s --check-prefixes=CHECK -DTEXTURE=TextureCubeArray \ +// RUN: -DDIM_NAME=Cube -DDIM=3 -DCOORD_DIM=4 \ +// RUN: -DIS_ARRAY=" [[hlsl::is_array]]" // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump \ // RUN: -disable-llvm-passes -finclude-default-header -DHAS_OFFSET \ // RUN: -DHAS_GETDIM_XY -DTEXTURE=Texture2DArray -DCOORD_TYPE=float3 \ @@ -18,7 +25,8 @@ // RUN: -o - %s \ // RUN: | FileCheck %s --check-prefixes=CHECK,ARRAY,TEXEL,OFFSET,GETDIM-XY \ // RUN: -DTEXTURE=Texture2DArray -DDIM_NAME=2D -DDIM=2 -DCOORD_DIM=3 \ -// RUN: -DLOAD_DIM=4 -DINDEX_TYPE="vector<unsigned int, 3>" +// RUN: -DLOAD_DIM=4 -DINDEX_TYPE="vector<unsigned int, 3>" \ +// RUN: -DIS_ARRAY=" [[hlsl::is_array]]" // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. @@ -49,6 +57,8 @@ // overloads // GETDIM-XY the width/height GetDimensions overloads exist // ARRAY the resource has an array slice +// IS_ARRAY the [[hlsl::is_array]] attribute on arrayed resources, +// or empty // CHECK: CXXRecordDecl {{.*}} SamplerState definition // CHECK: FinalAttr {{.*}} Implicit final @@ -69,9 +79,7 @@ // CHECK: TemplateTypeParmDecl {{.*}} element_type // CHECK: NonTypeTemplateParmDecl {{.*}} element_count // CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // TEXEL: CXXMethodDecl {{.*}} Load 'vector<element_type, element_count> (vector<int, [[LOAD_DIM]]>)' @@ -137,9 +145,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this @@ -210,9 +216,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_bias' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this @@ -289,9 +293,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_grad' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this @@ -372,9 +374,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_level' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this @@ -422,9 +422,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this @@ -500,9 +498,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_sample_cmp_level_zero' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this @@ -549,9 +545,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_calculate_lod' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this @@ -571,9 +565,7 @@ // CHECK-NEXT: CallExpr {{.*}} '<dependent type>' // CHECK-NEXT: DeclRefExpr {{.*}} '<builtin fn type>' Function {{.*}} '__builtin_hlsl_resource_calculate_lod_unclamped' 'void (...) noexcept' // CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t -// CHECK-SAME{LITERAL}: [[hlsl::resource_class("SRV")]] -// ARRAY-SAME{LITERAL}: [[hlsl::is_array]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(vector<element_type, element_count>)]] +// CHECK-SAME: {{\[\[}}hlsl::resource_class("SRV"){{\]\]}}[[IS_ARRAY]] {{\[\[}}hlsl::contained_type(vector<element_type, element_count>){{\]\]}} // CHECK-SAME: {{\[\[}}hlsl::dimension("[[DIM_NAME]]"){{\]\]}} // CHECK-SAME: ' lvalue .__handle // CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[TEXTURE]]<vector<element_type, element_count>>' lvalue implicit this diff --git a/clang/test/CodeGenHLSL/resources/Textures-CalculateLevelOfDetail.hlsl b/clang/test/CodeGenHLSL/resources/Textures-CalculateLevelOfDetail.hlsl index 29d6b97c5e429..490575fc43807 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-CalculateLevelOfDetail.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-CalculateLevelOfDetail.hlsl @@ -10,6 +10,12 @@ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube --check-prefixes=CHECK,DXIL \ // RUN: -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - -DLOD_TYPE=float3 \ +// RUN: -DTEXTURE=TextureCubeArray %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray \ +// RUN: --check-prefixes=CHECK,DXIL -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - -DLOD_TYPE=float2 \ // RUN: -DTEXTURE=Texture2D %s \ @@ -22,6 +28,13 @@ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube --check-prefixes=CHECK,SPIRV \ // RUN: -DARRAYED=0 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - -DLOD_TYPE=float3 \ +// RUN: -DTEXTURE=TextureCubeArray %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray \ +// RUN: --check-prefixes=CHECK,SPIRV -DARRAYED=1 -DSAMPLED=1 -DIMG_FMT=0 \ +// RUN: -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - -DLOD_TYPE=float2 \ // RUN: -DTEXTURE=Texture2DArray %s \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-Gather.hlsl b/clang/test/CodeGenHLSL/resources/Textures-Gather.hlsl index d611891a27ba0..afdf0b502ead9 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-Gather.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-Gather.hlsl @@ -12,6 +12,12 @@ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ // RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2D \ @@ -28,6 +34,13 @@ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ // RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL -DARRAYED=0 -DSAMPLED=1 \ // RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL -DARRAYED=1 -DSAMPLED=1 \ +// RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2DArray \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-Sample.hlsl b/clang/test/CodeGenHLSL/resources/Textures-Sample.hlsl index 46e8474264a08..b3a85fdf63b19 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-Sample.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-Sample.hlsl @@ -11,7 +11,15 @@ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2D \ @@ -26,8 +34,15 @@ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET -DARRAYED=0 -DSAMPLED=1 \ -// RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=0 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=1 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2DArray \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-SampleBias.hlsl b/clang/test/CodeGenHLSL/resources/Textures-SampleBias.hlsl index 18a7d1d0be266..0de7e40d58620 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-SampleBias.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-SampleBias.hlsl @@ -11,7 +11,15 @@ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2D \ @@ -26,8 +34,15 @@ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET -DARRAYED=0 -DSAMPLED=1 \ -// RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=0 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=1 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2DArray \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-SampleCmp.hlsl b/clang/test/CodeGenHLSL/resources/Textures-SampleCmp.hlsl index bd2ef7be01909..7e152475b3b98 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-SampleCmp.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-SampleCmp.hlsl @@ -11,7 +11,15 @@ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2D \ @@ -26,8 +34,15 @@ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET -DARRAYED=0 -DSAMPLED=1 \ -// RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=0 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=1 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2DArray \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-SampleCmpLevelZero.hlsl b/clang/test/CodeGenHLSL/resources/Textures-SampleCmpLevelZero.hlsl index aed333864b69f..f7c4d7bbc5c05 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-SampleCmpLevelZero.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-SampleCmpLevelZero.hlsl @@ -12,6 +12,12 @@ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ // RUN: --check-prefixes=CHECK,DXIL -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,DXIL -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2D \ @@ -28,6 +34,13 @@ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ // RUN: --check-prefixes=CHECK,SPIRV -DARRAYED=0 -DSAMPLED=1 -DIMG_FMT=0 \ // RUN: -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,SPIRV -DARRAYED=1 -DSAMPLED=1 -DIMG_FMT=0 \ +// RUN: -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2DArray \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-SampleGrad.hlsl b/clang/test/CodeGenHLSL/resources/Textures-SampleGrad.hlsl index 87ceb77cf2861..6d2de772e2beb 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-SampleGrad.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-SampleGrad.hlsl @@ -11,7 +11,15 @@ // RUN: -DGRAD_TYPE=float3 -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DGRAD_TYPE=float3 -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL,CHECK-NOOFFSET,DXIL-NOOFFSET \ +// RUN: -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DGRAD_TYPE=float2 -DHAS_OFFSET \ @@ -26,8 +34,15 @@ // RUN: -DGRAD_TYPE=float3 -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ -// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET -DARRAYED=0 -DSAMPLED=1 \ -// RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=0 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DGRAD_TYPE=float3 -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL,CHECK-NOOFFSET,SPIRV-NOOFFSET \ +// RUN: -DARRAYED=1 -DSAMPLED=1 -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DGRAD_TYPE=float2 -DHAS_OFFSET \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-SampleLevel.hlsl b/clang/test/CodeGenHLSL/resources/Textures-SampleLevel.hlsl index 0002ac693fc2a..72bc867e5c9da 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-SampleLevel.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-SampleLevel.hlsl @@ -12,6 +12,12 @@ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ // RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL -DDXIL_TY=5 -DRW=0 -DDIM=3 +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,DXIL,DXIL-NOTEXEL -DDXIL_TY=9 -DRW=0 -DDIM=3 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2D \ @@ -28,6 +34,13 @@ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 \ // RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL -DARRAYED=0 -DSAMPLED=1 \ // RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header -o - \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 \ +// RUN: --check-prefixes=CHECK,SPIRV,SPIRV-NOTEXEL -DARRAYED=1 -DSAMPLED=1 \ +// RUN: -DIMG_FMT=0 -DSPV_DIM=3 -DDIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -o - \ // RUN: -DOFFSET_ARG="int2(1, 2)" -DHAS_OFFSET -DTEXTURE=Texture2DArray \ diff --git a/clang/test/CodeGenHLSL/resources/Textures-default-explicit-binding.hlsl b/clang/test/CodeGenHLSL/resources/Textures-default-explicit-binding.hlsl index 1f929f5510acb..a0869ad668560 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-default-explicit-binding.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-default-explicit-binding.hlsl @@ -3,37 +3,49 @@ // RUN: -DCOORD_TYPE=float2 -o - %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=Texture2D -DCOORD_DIM=2 -DDXIL_TY=2 -DRW=0 \ -// RUN: --check-prefixes=CHECK +// RUN: --check-prefixes=CHECK,CHECK-TEXEL // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -DTEXTURE=TextureCube \ // RUN: -DCOORD_TYPE=float3 -o - %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 -DDXIL_TY=5 \ -// RUN: -DRW=0 --check-prefixes=CHECK +// RUN: -DRW=0 --check-prefixes=CHECK,CHECK-NOTEXEL +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 -o - %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 -DDXIL_TY=9 \ +// RUN: -DRW=0 --check-prefixes=CHECK,CHECK-NOTEXEL // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -DTEXTURE=Texture2D \ // RUN: -DCOORD_TYPE=float2 -o - %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=Texture2D -DCOORD_DIM=2 -DARRAYED=0 \ -// RUN: --check-prefixes=SPIRV -DSPV_DIM=1 +// RUN: --check-prefixes=SPIRV,SPIRV-TEXEL -DSPV_DIM=1 // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header -DTEXTURE=TextureCube \ // RUN: -DCOORD_TYPE=float3 -o - %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=TextureCube -DCOORD_DIM=3 -DARRAYED=0 \ -// RUN: --check-prefixes=SPIRV -DSPV_DIM=3 +// RUN: --check-prefixes=SPIRV,SPIRV-NOTEXEL -DSPV_DIM=3 +// RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ +// RUN: -disable-llvm-passes -finclude-default-header \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 -o - %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 -DARRAYED=1 \ +// RUN: --check-prefixes=SPIRV,SPIRV-NOTEXEL -DSPV_DIM=3 // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header \ // RUN: -DTEXTURE=Texture2DArray -DCOORD_TYPE=float3 -o - %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=Texture2DArray -DCOORD_DIM=3 -DDXIL_TY=7 \ -// RUN: -DRW=0 --check-prefixes=CHECK +// RUN: -DRW=0 --check-prefixes=CHECK,CHECK-TEXEL // RUN: %clang_cc1 -triple spirv-vulkan-library -x hlsl -emit-llvm \ // RUN: -disable-llvm-passes -finclude-default-header \ // RUN: -DTEXTURE=Texture2DArray -DCOORD_TYPE=float3 -o - %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=Texture2DArray -DCOORD_DIM=3 -DARRAYED=1 \ -// RUN: --check-prefixes=SPIRV -DSPV_DIM=1 +// RUN: --check-prefixes=SPIRV,SPIRV-TEXEL -DSPV_DIM=1 // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. @@ -46,6 +58,12 @@ // RW dx.Texture UAV operand // ARRAYED spirv.Image Arrayed operand // SPV_DIM spirv.Image Dim operand +// +// Check prefixes: +// TEXEL the type has integer texel addressing (Load, +// operator[], mips), and therefore a `mips` field in its +// layout +// NOTEXEL the type has no integer texel addressing TEXTURE<> default_template : register(t1, space2); TEXTURE implicit_template : register(t0, space1); diff --git a/clang/test/CodeGenHLSL/resources/Textures-default.hlsl b/clang/test/CodeGenHLSL/resources/Textures-default.hlsl index 3561bed16a8d1..a271f0ff2ff94 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-default.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-default.hlsl @@ -10,6 +10,11 @@ // RUN: --check-prefixes=CHECK,CHECK-NOTEXEL // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ // RUN: -std=hlsl202x -emit-llvm -disable-llvm-passes \ +// RUN: -finclude-default-header -DTEXTURE=TextureCubeArray -o - %s \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DDXIL_TY=9 -DRW=0 \ +// RUN: --check-prefixes=CHECK,CHECK-NOTEXEL +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ +// RUN: -std=hlsl202x -emit-llvm -disable-llvm-passes \ // RUN: -finclude-default-header -DTEXTURE=Texture2DArray -o - %s \ // RUN: | FileCheck %s -DTEXTURE=Texture2DArray -DDXIL_TY=7 -DRW=0 \ // RUN: --check-prefixes=CHECK,CHECK-TEXEL diff --git a/clang/test/CodeGenHLSL/resources/Textures-shorthand-contexts.hlsl b/clang/test/CodeGenHLSL/resources/Textures-shorthand-contexts.hlsl index 9a7bc5904292a..4a037bafc452f 100644 --- a/clang/test/CodeGenHLSL/resources/Textures-shorthand-contexts.hlsl +++ b/clang/test/CodeGenHLSL/resources/Textures-shorthand-contexts.hlsl @@ -12,6 +12,12 @@ // RUN: -DRW=0 --check-prefixes=CHECK,CHECK-NOTEXEL // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ // RUN: -finclude-default-header -emit-llvm -disable-llvm-passes \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 -o - %s \ +// RUN: | llvm-cxxfilt \ +// RUN: | FileCheck %s -DTEXTURE=TextureCubeArray -DCOORD_DIM=4 -DDXIL_TY=9 \ +// RUN: -DRW=0 --check-prefixes=CHECK,CHECK-NOTEXEL +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ +// RUN: -finclude-default-header -emit-llvm -disable-llvm-passes \ // RUN: -DTEXTURE=Texture2DArray -DCOORD_TYPE=float3 -o - %s \ // RUN: | llvm-cxxfilt \ // RUN: | FileCheck %s -DTEXTURE=Texture2DArray -DCOORD_DIM=3 -DDXIL_TY=7 \ diff --git a/clang/test/SemaHLSL/Resources/Textures-CalculateLevelOfDetail.hlsl b/clang/test/SemaHLSL/Resources/Textures-CalculateLevelOfDetail.hlsl index d91fbd782e214..0b31f4beceb1a 100644 --- a/clang/test/SemaHLSL/Resources/Textures-CalculateLevelOfDetail.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-CalculateLevelOfDetail.hlsl @@ -7,6 +7,9 @@ // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library \ // RUN: -finclude-default-header -fsyntax-only -verify=expected,dim3 \ // RUN: -DTEXTURE=TextureCube -DLOD_TYPE=float3 %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library \ +// RUN: -finclude-default-header -fsyntax-only -verify=expected,dim3 \ +// RUN: -DTEXTURE=TextureCubeArray -DLOD_TYPE=float3 %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-SampleBias.hlsl b/clang/test/SemaHLSL/Resources/Textures-SampleBias.hlsl index 23b282828a024..1b141cf052ac5 100644 --- a/clang/test/SemaHLSL/Resources/Textures-SampleBias.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-SampleBias.hlsl @@ -10,6 +10,10 @@ // RUN: -finclude-default-header -fsyntax-only \ // RUN: -verify=expected,nooffset,dim3 -DOFFSET_TYPE=int3 \ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library \ +// RUN: -finclude-default-header -fsyntax-only \ +// RUN: -verify=expected,nooffset,dim3 -DOFFSET_TYPE=int3 \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-SampleCmp.hlsl b/clang/test/SemaHLSL/Resources/Textures-SampleCmp.hlsl index 615e0d780ef0a..30705360319a2 100644 --- a/clang/test/SemaHLSL/Resources/Textures-SampleCmp.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-SampleCmp.hlsl @@ -10,6 +10,10 @@ // RUN: -fsyntax-only -finclude-default-header \ // RUN: -verify=expected,nooffset,dim3 -DOFFSET_ARG="int3(1, 2, 3)" \ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ +// RUN: -fsyntax-only -finclude-default-header \ +// RUN: -verify=expected,nooffset,dim3 -DOFFSET_ARG="int3(1, 2, 3)" \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-SampleCmpLevelZero.hlsl b/clang/test/SemaHLSL/Resources/Textures-SampleCmpLevelZero.hlsl index 35e6e50d6e0f1..c3d7b41fba2ea 100644 --- a/clang/test/SemaHLSL/Resources/Textures-SampleCmpLevelZero.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-SampleCmpLevelZero.hlsl @@ -10,6 +10,10 @@ // RUN: -fsyntax-only -finclude-default-header \ // RUN: -verify=expected,nooffset,dim3 -DOFFSET_ARG="int3(1, 2, 3)" \ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ +// RUN: -fsyntax-only -finclude-default-header \ +// RUN: -verify=expected,nooffset,dim3 -DOFFSET_ARG="int3(1, 2, 3)" \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-SampleGrad.hlsl b/clang/test/SemaHLSL/Resources/Textures-SampleGrad.hlsl index fc706953eee46..9ef77e5723988 100644 --- a/clang/test/SemaHLSL/Resources/Textures-SampleGrad.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-SampleGrad.hlsl @@ -10,6 +10,10 @@ // RUN: -finclude-default-header -fsyntax-only \ // RUN: -verify=expected,nooffset,dim3 -DOFFSET_TYPE=int3 \ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 -DGRAD_TYPE=float3 %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library \ +// RUN: -finclude-default-header -fsyntax-only \ +// RUN: -verify=expected,nooffset,dim3 -DOFFSET_TYPE=int3 \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 -DGRAD_TYPE=float3 %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-SampleLevel.hlsl b/clang/test/SemaHLSL/Resources/Textures-SampleLevel.hlsl index efdd5cd11a134..1713cc1ea0529 100644 --- a/clang/test/SemaHLSL/Resources/Textures-SampleLevel.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-SampleLevel.hlsl @@ -10,6 +10,10 @@ // RUN: -finclude-default-header -fsyntax-only \ // RUN: -verify=expected,nooffset,dim3 -DOFFSET_TYPE=int3 \ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library \ +// RUN: -finclude-default-header -fsyntax-only \ +// RUN: -verify=expected,nooffset,dim3 -DOFFSET_TYPE=int3 \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-Sema.hlsl b/clang/test/SemaHLSL/Resources/Textures-Sema.hlsl index 6f63e309c4534..5b01281efe00d 100644 --- a/clang/test/SemaHLSL/Resources/Textures-Sema.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-Sema.hlsl @@ -10,6 +10,10 @@ // RUN: -fsyntax-only -finclude-default-header \ // RUN: -verify=expected,nooffset,dim3 -DOFFSET_ARG="int3(1, 2, 3)" \ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ +// RUN: -fsyntax-only -finclude-default-header \ +// RUN: -verify=expected,nooffset,dim3 -DOFFSET_ARG="int3(1, 2, 3)" \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-declaration-order.hlsl b/clang/test/SemaHLSL/Resources/Textures-declaration-order.hlsl index 6bd7efdb6a8fa..9811202570310 100644 --- a/clang/test/SemaHLSL/Resources/Textures-declaration-order.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-declaration-order.hlsl @@ -22,6 +22,8 @@ RWTexture2DArray<float> RWTex2DArray; RWTexture2DArray<float2> RWTex2DArrayVec; TextureCube<float> TexCube; TextureCube<float2> TexCubeVec; +TextureCubeArray<float> TexCubeArray; +TextureCubeArray<float2> TexCubeArrayVec; #else Texture2D<float2> Tex2DVec; Texture2D<float> Tex2D; @@ -33,13 +35,15 @@ RWTexture2DArray<float2> RWTex2DArrayVec; RWTexture2DArray<float> RWTex2DArray; TextureCube<float2> TexCubeVec; TextureCube<float> TexCube; +TextureCubeArray<float2> TexCubeArrayVec; +TextureCubeArray<float> TexCubeArray; #endif SamplerState Samp; // Use members of both the primary template and the partial specialization to // make sure both patterns really have been completed. -export void useTextures(float2 UV, float3 UVW) { +export void useTextures(float2 UV, float3 UVW, float4 UVWA) { float S = Tex2D.Sample(Samp, UV); float2 V = Tex2DVec.Sample(Samp, UV); RWTex2D[uint2(0, 0)] = S; @@ -52,4 +56,7 @@ export void useTextures(float2 UV, float3 UVW) { float CS = TexCube.Sample(Samp, UVW); float2 CV = TexCubeVec.Sample(Samp, UVW); + + float CAS = TexCubeArray.Sample(Samp, UVWA); + float2 CAV = TexCubeArrayVec.Sample(Samp, UVWA); } diff --git a/clang/test/SemaHLSL/Resources/Textures-mips-errors.hlsl b/clang/test/SemaHLSL/Resources/Textures-mips-errors.hlsl index d2e91897bb9e3..3f5ecf264938f 100644 --- a/clang/test/SemaHLSL/Resources/Textures-mips-errors.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-mips-errors.hlsl @@ -13,6 +13,9 @@ // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ // RUN: -emit-llvm-only -disable-llvm-passes -finclude-default-header \ // RUN: -DTEXTURE=TextureCube -verify %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ +// RUN: -emit-llvm-only -disable-llvm-passes -finclude-default-header \ +// RUN: -DTEXTURE=TextureCubeArray -verify %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. diff --git a/clang/test/SemaHLSL/Resources/Textures-unsupported-methods-errors.hlsl b/clang/test/SemaHLSL/Resources/Textures-unsupported-methods-errors.hlsl index 0e1a64ed03038..d2c62b9d5a082 100644 --- a/clang/test/SemaHLSL/Resources/Textures-unsupported-methods-errors.hlsl +++ b/clang/test/SemaHLSL/Resources/Textures-unsupported-methods-errors.hlsl @@ -9,6 +9,11 @@ // RUN: -DLOAD_ARG="int4(0, 0, 0, 0)" -DINDEX_ARG="uint3(0, 0, 0)" \ // RUN: -DTEXTURE=TextureCube -DCOORD_TYPE=float3 -DOFFSET_TYPE=int3 -verify \ // RUN: %s +// RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl \ +// RUN: -finclude-default-header -DHAS_SAMPLE -DHAS_GATHER -DHAS_LOD \ +// RUN: -DLOAD_ARG="int4(0, 0, 0, 0)" -DINDEX_ARG="uint3(0, 0, 0)" \ +// RUN: -DTEXTURE=TextureCubeArray -DCOORD_TYPE=float4 -DOFFSET_TYPE=int3 \ +// RUN: -verify %s // Parameterized over the texture types in the RUN lines above; adding a texture // of another dimension only requires new RUN lines. _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
