Move TextureDimension to type/
This cl pulls TextureDimension out of ast/texture and into
type/texture_dimension removing a type dependency on ast.
Change-Id: Icf06ec32ee9051286f169ae9538c48416f513039
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/117603
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index 139f8ee..6e171e6 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -586,6 +586,7 @@
"type/storage_texture.h",
"type/struct.h",
"type/texture.h",
+ "type/texture_dimension.h",
"type/type.h",
"type/u32.h",
"type/unique_node.h",
@@ -739,6 +740,8 @@
"type/struct.h",
"type/texture.cc",
"type/texture.h",
+ "type/texture_dimension.cc",
+ "type/texture_dimension.h",
"type/type.cc",
"type/type.h",
"type/u32.cc",
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index 2f7bda7..45c45e7 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -514,6 +514,8 @@
type/struct.h
type/texture.cc
type/texture.h
+ type/texture_dimension.cc
+ type/texture_dimension.h
type/type.cc
type/type.h
type/u32.cc
diff --git a/src/tint/ast/builtin_texture_helper_test.cc b/src/tint/ast/builtin_texture_helper_test.cc
index 0ea2ced..7dda560 100644
--- a/src/tint/ast/builtin_texture_helper_test.cc
+++ b/src/tint/ast/builtin_texture_helper_test.cc
@@ -17,6 +17,7 @@
#include "src/tint/type/depth_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
using namespace tint::number_suffixes; // NOLINT
@@ -26,7 +27,7 @@
const char* desc,
TextureKind tk,
ast::SamplerKind sk,
- ast::TextureDimension dims,
+ type::TextureDimension dims,
TextureDataType datatype,
const char* f,
std::function<Args(ProgramBuilder*)> a)
@@ -41,7 +42,7 @@
TextureOverloadCase::TextureOverloadCase(ValidTextureOverload o,
const char* desc,
TextureKind tk,
- ast::TextureDimension dims,
+ type::TextureDimension dims,
TextureDataType datatype,
const char* f,
std::function<Args(ProgramBuilder*)> a)
@@ -56,7 +57,7 @@
const char* d,
Access acc,
ast::TexelFormat fmt,
- ast::TextureDimension dims,
+ type::TextureDimension dims,
TextureDataType datatype,
const char* f,
std::function<Args(ProgramBuilder*)> a)
@@ -186,7 +187,7 @@
"textureDimensions(t : texture_1d<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -196,7 +197,7 @@
"textureDimensions(t : texture_2d<f32>) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -207,7 +208,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -217,7 +218,7 @@
"textureDimensions(t : texture_2d_array<f32>) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -228,7 +229,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -238,7 +239,7 @@
"textureDimensions(t : texture_3d<f32>) -> vec3<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -249,7 +250,7 @@
" level : i32) -> vec3<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -259,7 +260,7 @@
"textureDimensions(t : texture_cube<f32>) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -270,7 +271,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -280,7 +281,7 @@
"textureDimensions(t : texture_cube_array<f32>) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -291,7 +292,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -301,7 +302,7 @@
"textureDimensions(t : texture_multisampled_2d<f32>)-> vec2<u32>",
TextureKind::kMultisampled,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -311,7 +312,7 @@
"textureDimensions(t : texture_depth_2d) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -322,7 +323,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -332,7 +333,7 @@
"textureDimensions(t : texture_depth_2d_array) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -343,7 +344,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -353,7 +354,7 @@
"textureDimensions(t : texture_depth_cube) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -364,7 +365,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -374,7 +375,7 @@
"textureDimensions(t : texture_depth_cube_array) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -385,7 +386,7 @@
" level : i32) -> vec2<u32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture", 1_i); },
@@ -395,7 +396,7 @@
"textureDimensions(t : texture_depth_multisampled_2d) -> vec2<u32>",
TextureKind::kDepthMultisampled,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -405,7 +406,7 @@
"textureDimensions(t : texture_storage_1d<rgba32float>) -> u32",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -415,7 +416,7 @@
"textureDimensions(t : texture_storage_2d<rgba32float>) -> vec2<u32>",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -425,7 +426,7 @@
"textureDimensions(t : texture_storage_2d_array<rgba32float>) -> vec2<u32>",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -435,7 +436,7 @@
"textureDimensions(t : texture_storage_3d<rgba32float>) -> vec3<u32>",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureDimensions",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -449,7 +450,7 @@
" coords : vec2<f32>) -> vec4<T>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -468,7 +469,7 @@
" offset : vec2<i32>) -> vec4<T>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -488,7 +489,7 @@
" array_index : i32) -> vec4<T>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -509,7 +510,7 @@
" offset : vec2<i32>) -> vec4<T>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -529,7 +530,7 @@
" coords : vec3<f32>) -> vec4<T>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -548,7 +549,7 @@
" array_index : u32) -> vec4<T>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -566,7 +567,7 @@
" coords : vec2<f32>) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -583,7 +584,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -601,7 +602,7 @@
" array_index : u32) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -620,7 +621,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -638,7 +639,7 @@
" coords : vec3<f32>) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -655,7 +656,7 @@
" array_index : u32) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureGather",
[](ProgramBuilder* b) {
@@ -673,7 +674,7 @@
" depth_ref : f32) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
@@ -692,7 +693,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
@@ -712,7 +713,7 @@
" depth_ref : f32) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
@@ -733,7 +734,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
@@ -753,7 +754,7 @@
" depth_ref : f32) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
@@ -772,7 +773,7 @@
" depth_ref : f32) -> vec4<f32>",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureGatherCompare",
[](ProgramBuilder* b) {
@@ -788,7 +789,7 @@
"textureNumLayers(t : texture_2d_array<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureNumLayers",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -798,7 +799,7 @@
"textureNumLayers(t : texture_cube_array<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureNumLayers",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -808,7 +809,7 @@
"textureNumLayers(t : texture_depth_2d_array) -> u32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureNumLayers",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -818,7 +819,7 @@
"textureNumLayers(t : texture_depth_cube_array) -> u32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureNumLayers",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -828,7 +829,7 @@
"textureNumLayers(t : texture_storage_2d_array<rgba32float>) -> u32",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureNumLayers",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -838,7 +839,7 @@
"textureNumLevels(t : texture_2d<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -848,7 +849,7 @@
"textureNumLevels(t : texture_2d_array<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -858,7 +859,7 @@
"textureNumLevels(t : texture_3d<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -868,7 +869,7 @@
"textureNumLevels(t : texture_cube<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -878,7 +879,7 @@
"textureNumLevels(t : texture_cube_array<f32>) -> u32",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -888,7 +889,7 @@
"textureNumLevels(t : texture_depth_2d) -> u32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -898,7 +899,7 @@
"textureNumLevels(t : texture_depth_2d_array) -> u32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -908,7 +909,7 @@
"textureNumLevels(t : texture_depth_cube) -> u32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -918,7 +919,7 @@
"textureNumLevels(t : texture_depth_cube_array) -> u32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureNumLevels",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -928,7 +929,7 @@
"textureNumSamples(t : texture_multisampled_2d<f32>) -> u32",
TextureKind::kMultisampled,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureNumSamples",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -938,7 +939,7 @@
"textureNumSamples(t : texture_depth_multisampled_2d<f32>) -> u32",
TextureKind::kMultisampled,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureNumSamples",
[](ProgramBuilder* b) { return b->ExprList("texture"); },
@@ -950,7 +951,7 @@
" coords : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -966,7 +967,7 @@
" coords : vec2<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -983,7 +984,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1001,7 +1002,7 @@
" array_index : i32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1020,7 +1021,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1038,7 +1039,7 @@
" coords : vec3<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1055,7 +1056,7 @@
" offset : vec3<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1072,7 +1073,7 @@
" coords : vec3<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1089,7 +1090,7 @@
" array_index : i32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1106,7 +1107,7 @@
" coords : vec2<f32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1123,7 +1124,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1141,7 +1142,7 @@
" array_index : i32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1160,7 +1161,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1178,7 +1179,7 @@
" coords : vec3<f32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1195,7 +1196,7 @@
" array_index : u32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSample",
[](ProgramBuilder* b) {
@@ -1213,7 +1214,7 @@
" bias : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1232,7 +1233,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1252,7 +1253,7 @@
" bias : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1273,7 +1274,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1293,7 +1294,7 @@
" bias : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1312,7 +1313,7 @@
" offset : vec3<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1331,7 +1332,7 @@
" bias : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1350,7 +1351,7 @@
" bias : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSampleBias",
[](ProgramBuilder* b) {
@@ -1369,7 +1370,7 @@
" level : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1388,7 +1389,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1408,7 +1409,7 @@
" level : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1429,7 +1430,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1449,7 +1450,7 @@
" level : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1468,7 +1469,7 @@
" offset : vec3<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1487,7 +1488,7 @@
" level : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1506,7 +1507,7 @@
" level : f32) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1525,7 +1526,7 @@
" level : u32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1544,7 +1545,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1564,7 +1565,7 @@
" level : u32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1585,7 +1586,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1605,7 +1606,7 @@
" level : i32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1624,7 +1625,7 @@
" level : i32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSampleLevel",
[](ProgramBuilder* b) {
@@ -1644,7 +1645,7 @@
" ddy : vec2<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1665,7 +1666,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1687,7 +1688,7 @@
" ddy : vec2<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1710,7 +1711,7 @@
" offset : vec2<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1732,7 +1733,7 @@
" ddy : vec3<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1753,7 +1754,7 @@
" offset : vec3<i32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1774,7 +1775,7 @@
" ddy : vec3<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1795,7 +1796,7 @@
" ddy : vec3<f32>) -> vec4<f32>",
TextureKind::kRegular,
ast::SamplerKind::kSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSampleGrad",
[](ProgramBuilder* b) {
@@ -1815,7 +1816,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
@@ -1834,7 +1835,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
@@ -1854,7 +1855,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
@@ -1875,7 +1876,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
@@ -1895,7 +1896,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
@@ -1914,7 +1915,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSampleCompare",
[](ProgramBuilder* b) {
@@ -1933,7 +1934,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
@@ -1952,7 +1953,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
@@ -1972,7 +1973,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
@@ -1993,7 +1994,7 @@
" offset : vec2<i32>) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
@@ -2013,7 +2014,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
@@ -2032,7 +2033,7 @@
" depth_ref : f32) -> f32",
TextureKind::kDepth,
ast::SamplerKind::kComparisonSampler,
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::kF32,
"textureSampleCompareLevel",
[](ProgramBuilder* b) {
@@ -2049,7 +2050,7 @@
" coords : u32,\n"
" level : u32) -> vec4<f32>",
TextureKind::kRegular,
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2064,7 +2065,7 @@
" coords : i32,\n"
" level : i32) -> vec4<u32>",
TextureKind::kRegular,
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::kU32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2079,7 +2080,7 @@
" coords : i32,\n"
" level : i32) -> vec4<i32>",
TextureKind::kRegular,
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::kI32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2094,7 +2095,7 @@
" coords : vec2<u32>,\n"
" level : u32) -> vec4<f32>",
TextureKind::kRegular,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2109,7 +2110,7 @@
" coords : vec2<i32>,\n"
" level : i32) -> vec4<u32>",
TextureKind::kRegular,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kU32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2124,7 +2125,7 @@
" coords : vec2<u32>,\n"
" level : u32) -> vec4<i32>",
TextureKind::kRegular,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kI32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2140,7 +2141,7 @@
" array_index : i32,\n"
" level : i32) -> vec4<f32>",
TextureKind::kRegular,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2157,7 +2158,7 @@
" array_index : i32,\n"
" level : i32) -> vec4<u32>",
TextureKind::kRegular,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kU32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2174,7 +2175,7 @@
" array_index : u32,\n"
" level : u32) -> vec4<i32>",
TextureKind::kRegular,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kI32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2190,7 +2191,7 @@
" coords : vec3<i32>,\n"
" level : i32) -> vec4<f32>",
TextureKind::kRegular,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2205,7 +2206,7 @@
" coords : vec3<i32>,\n"
" level : i32) -> vec4<u32>",
TextureKind::kRegular,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kU32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2220,7 +2221,7 @@
" coords : vec3<u32>,\n"
" level : u32) -> vec4<i32>",
TextureKind::kRegular,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kI32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2235,7 +2236,7 @@
" coords : vec2<i32>,\n"
" sample_index : i32) -> vec4<f32>",
TextureKind::kMultisampled,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2250,7 +2251,7 @@
" coords : vec2<i32>,\n"
" sample_index : i32) -> vec4<u32>",
TextureKind::kMultisampled,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kU32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2265,7 +2266,7 @@
" coords : vec2<u32>,\n"
" sample_index : u32) -> vec4<i32>",
TextureKind::kMultisampled,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kI32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2280,7 +2281,7 @@
" coords : vec2<i32>,\n"
" level : i32) -> f32",
TextureKind::kDepth,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2296,7 +2297,7 @@
" array_index : u32,\n"
" level : u32) -> f32",
TextureKind::kDepth,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2312,7 +2313,7 @@
" coords : vec2<u32>,\n"
" sample_index : u32) -> f32",
TextureKind::kDepthMultisampled,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureLoad",
[](ProgramBuilder* b) {
@@ -2328,7 +2329,7 @@
" value : vec4<T>)",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::kF32,
"textureStore",
[](ProgramBuilder* b) {
@@ -2344,7 +2345,7 @@
" value : vec4<T>)",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::kF32,
"textureStore",
[](ProgramBuilder* b) {
@@ -2361,7 +2362,7 @@
" value : vec4<T>)",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::kF32,
"textureStore",
[](ProgramBuilder* b) {
@@ -2378,7 +2379,7 @@
" value : vec4<T>)",
ast::Access::kWrite,
ast::TexelFormat::kRgba32Float,
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::kF32,
"textureStore",
[](ProgramBuilder* b) {
diff --git a/src/tint/ast/builtin_texture_helper_test.h b/src/tint/ast/builtin_texture_helper_test.h
index 744796a..cfa180a 100644
--- a/src/tint/ast/builtin_texture_helper_test.h
+++ b/src/tint/ast/builtin_texture_helper_test.h
@@ -20,6 +20,7 @@
#include "src/tint/ast/access.h"
#include "src/tint/program_builder.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast::builtin::test {
@@ -185,7 +186,7 @@
const char*,
TextureKind,
ast::SamplerKind,
- ast::TextureDimension,
+ type::TextureDimension,
TextureDataType,
const char*,
std::function<Args(ProgramBuilder*)>);
@@ -193,7 +194,7 @@
TextureOverloadCase(ValidTextureOverload,
const char*,
TextureKind,
- ast::TextureDimension,
+ type::TextureDimension,
TextureDataType,
const char*,
std::function<Args(ProgramBuilder*)>);
@@ -202,7 +203,7 @@
const char*,
Access,
ast::TexelFormat,
- ast::TextureDimension,
+ type::TextureDimension,
TextureDataType,
const char*,
std::function<Args(ProgramBuilder*)>);
@@ -243,7 +244,7 @@
/// Used only when texture_kind is kStorage
ast::TexelFormat const texel_format = ast::TexelFormat::kUndefined;
/// The dimensions of the texture parameter
- ast::TextureDimension const texture_dimension;
+ type::TextureDimension const texture_dimension;
/// The data type of the texture parameter
const TextureDataType texture_data_type;
/// Name of the function. e.g. `textureSample`, `textureSampleGrad`, etc
diff --git a/src/tint/ast/depth_multisampled_texture.cc b/src/tint/ast/depth_multisampled_texture.cc
index 64998b5..2ab3e8a 100644
--- a/src/tint/ast/depth_multisampled_texture.cc
+++ b/src/tint/ast/depth_multisampled_texture.cc
@@ -21,8 +21,8 @@
namespace tint::ast {
namespace {
-bool IsValidDepthDimension(TextureDimension dim) {
- return dim == TextureDimension::k2d;
+bool IsValidDepthDimension(type::TextureDimension dim) {
+ return dim == type::TextureDimension::k2d;
}
} // namespace
@@ -30,7 +30,7 @@
DepthMultisampledTexture::DepthMultisampledTexture(ProgramID pid,
NodeID nid,
const Source& src,
- TextureDimension d)
+ type::TextureDimension d)
: Base(pid, nid, src, d) {
TINT_ASSERT(AST, IsValidDepthDimension(dim));
}
diff --git a/src/tint/ast/depth_multisampled_texture.h b/src/tint/ast/depth_multisampled_texture.h
index 2cc8d78..8986d49 100644
--- a/src/tint/ast/depth_multisampled_texture.h
+++ b/src/tint/ast/depth_multisampled_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/ast/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
@@ -29,7 +30,10 @@
/// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
- DepthMultisampledTexture(ProgramID pid, NodeID nid, const Source& src, TextureDimension dim);
+ DepthMultisampledTexture(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ type::TextureDimension dim);
/// Move constructor
DepthMultisampledTexture(DepthMultisampledTexture&&);
~DepthMultisampledTexture() override;
diff --git a/src/tint/ast/depth_multisampled_texture_test.cc b/src/tint/ast/depth_multisampled_texture_test.cc
index 1de335d..675e672 100644
--- a/src/tint/ast/depth_multisampled_texture_test.cc
+++ b/src/tint/ast/depth_multisampled_texture_test.cc
@@ -22,12 +22,12 @@
using AstDepthMultisampledTextureTest = TestHelper;
TEST_F(AstDepthMultisampledTextureTest, Dim) {
- auto* d = create<DepthMultisampledTexture>(TextureDimension::k2d);
- EXPECT_EQ(d->dim, TextureDimension::k2d);
+ auto* d = create<DepthMultisampledTexture>(type::TextureDimension::k2d);
+ EXPECT_EQ(d->dim, type::TextureDimension::k2d);
}
TEST_F(AstDepthMultisampledTextureTest, FriendlyName) {
- auto* d = create<DepthMultisampledTexture>(TextureDimension::k2d);
+ auto* d = create<DepthMultisampledTexture>(type::TextureDimension::k2d);
EXPECT_EQ(d->FriendlyName(Symbols()), "texture_depth_multisampled_2d");
}
diff --git a/src/tint/ast/depth_texture.cc b/src/tint/ast/depth_texture.cc
index 4aae6f3..199c0da 100644
--- a/src/tint/ast/depth_texture.cc
+++ b/src/tint/ast/depth_texture.cc
@@ -21,14 +21,14 @@
namespace tint::ast {
namespace {
-bool IsValidDepthDimension(TextureDimension dim) {
- return dim == TextureDimension::k2d || dim == TextureDimension::k2dArray ||
- dim == TextureDimension::kCube || dim == TextureDimension::kCubeArray;
+bool IsValidDepthDimension(type::TextureDimension dim) {
+ return dim == type::TextureDimension::k2d || dim == type::TextureDimension::k2dArray ||
+ dim == type::TextureDimension::kCube || dim == type::TextureDimension::kCubeArray;
}
} // namespace
-DepthTexture::DepthTexture(ProgramID pid, NodeID nid, const Source& src, TextureDimension d)
+DepthTexture::DepthTexture(ProgramID pid, NodeID nid, const Source& src, type::TextureDimension d)
: Base(pid, nid, src, d) {
TINT_ASSERT(AST, IsValidDepthDimension(dim));
}
diff --git a/src/tint/ast/depth_texture.h b/src/tint/ast/depth_texture.h
index 7df34a2..e687612 100644
--- a/src/tint/ast/depth_texture.h
+++ b/src/tint/ast/depth_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/ast/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
@@ -29,7 +30,7 @@
/// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
- DepthTexture(ProgramID pid, NodeID nid, const Source& src, TextureDimension dim);
+ DepthTexture(ProgramID pid, NodeID nid, const Source& src, type::TextureDimension dim);
/// Move constructor
DepthTexture(DepthTexture&&);
~DepthTexture() override;
diff --git a/src/tint/ast/depth_texture_test.cc b/src/tint/ast/depth_texture_test.cc
index 15dc356..e2a7b0e 100644
--- a/src/tint/ast/depth_texture_test.cc
+++ b/src/tint/ast/depth_texture_test.cc
@@ -22,19 +22,19 @@
using AstDepthTextureTest = TestHelper;
TEST_F(AstDepthTextureTest, IsTexture) {
- Texture* ty = create<DepthTexture>(TextureDimension::kCube);
+ Texture* ty = create<DepthTexture>(type::TextureDimension::kCube);
EXPECT_TRUE(ty->Is<DepthTexture>());
EXPECT_FALSE(ty->Is<SampledTexture>());
EXPECT_FALSE(ty->Is<StorageTexture>());
}
TEST_F(AstDepthTextureTest, Dim) {
- auto* d = create<DepthTexture>(TextureDimension::kCube);
- EXPECT_EQ(d->dim, TextureDimension::kCube);
+ auto* d = create<DepthTexture>(type::TextureDimension::kCube);
+ EXPECT_EQ(d->dim, type::TextureDimension::kCube);
}
TEST_F(AstDepthTextureTest, FriendlyName) {
- auto* d = create<DepthTexture>(TextureDimension::kCube);
+ auto* d = create<DepthTexture>(type::TextureDimension::kCube);
EXPECT_EQ(d->FriendlyName(Symbols()), "texture_depth_cube");
}
diff --git a/src/tint/ast/external_texture.cc b/src/tint/ast/external_texture.cc
index 4881913..95d9bc7 100644
--- a/src/tint/ast/external_texture.cc
+++ b/src/tint/ast/external_texture.cc
@@ -15,14 +15,15 @@
#include "src/tint/ast/external_texture.h"
#include "src/tint/program_builder.h"
+#include "src/tint/type/texture_dimension.h"
TINT_INSTANTIATE_TYPEINFO(tint::ast::ExternalTexture);
namespace tint::ast {
-// ExternalTexture::ExternalTexture() : Base(ast::TextureDimension::k2d) {}
+// ExternalTexture::ExternalTexture() : Base(type::TextureDimension::k2d) {}
ExternalTexture::ExternalTexture(ProgramID pid, NodeID nid, const Source& src)
- : Base(pid, nid, src, ast::TextureDimension::k2d) {}
+ : Base(pid, nid, src, type::TextureDimension::k2d) {}
ExternalTexture::ExternalTexture(ExternalTexture&&) = default;
diff --git a/src/tint/ast/external_texture_test.cc b/src/tint/ast/external_texture_test.cc
index dfe097e..873dca8 100644
--- a/src/tint/ast/external_texture_test.cc
+++ b/src/tint/ast/external_texture_test.cc
@@ -15,6 +15,7 @@
#include "src/tint/ast/external_texture.h"
#include "src/tint/ast/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
namespace {
@@ -32,7 +33,7 @@
TEST_F(AstExternalTextureTest, Dim) {
auto* ty = create<ExternalTexture>();
- EXPECT_EQ(ty->dim, ast::TextureDimension::k2d);
+ EXPECT_EQ(ty->dim, type::TextureDimension::k2d);
}
TEST_F(AstExternalTextureTest, FriendlyName) {
diff --git a/src/tint/ast/multisampled_texture.cc b/src/tint/ast/multisampled_texture.cc
index 0c44857..05aea9d 100644
--- a/src/tint/ast/multisampled_texture.cc
+++ b/src/tint/ast/multisampled_texture.cc
@@ -23,7 +23,7 @@
MultisampledTexture::MultisampledTexture(ProgramID pid,
NodeID nid,
const Source& src,
- TextureDimension d,
+ type::TextureDimension d,
const Type* ty)
: Base(pid, nid, src, d), type(ty) {
TINT_ASSERT(AST, type);
diff --git a/src/tint/ast/multisampled_texture.h b/src/tint/ast/multisampled_texture.h
index 6887045..dfa192e 100644
--- a/src/tint/ast/multisampled_texture.h
+++ b/src/tint/ast/multisampled_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/ast/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
@@ -33,7 +34,7 @@
MultisampledTexture(ProgramID pid,
NodeID nid,
const Source& src,
- TextureDimension dim,
+ type::TextureDimension dim,
const Type* type);
/// Move constructor
MultisampledTexture(MultisampledTexture&&);
diff --git a/src/tint/ast/multisampled_texture_test.cc b/src/tint/ast/multisampled_texture_test.cc
index bc3b87f..ee05710 100644
--- a/src/tint/ast/multisampled_texture_test.cc
+++ b/src/tint/ast/multisampled_texture_test.cc
@@ -39,7 +39,7 @@
TEST_F(AstMultisampledTextureTest, IsTexture) {
auto* f32 = create<F32>();
- Texture* ty = create<MultisampledTexture>(TextureDimension::kCube, f32);
+ Texture* ty = create<MultisampledTexture>(type::TextureDimension::kCube, f32);
EXPECT_FALSE(ty->Is<DepthTexture>());
EXPECT_TRUE(ty->Is<MultisampledTexture>());
EXPECT_FALSE(ty->Is<SampledTexture>());
@@ -48,19 +48,19 @@
TEST_F(AstMultisampledTextureTest, Dim) {
auto* f32 = create<F32>();
- auto* s = create<MultisampledTexture>(TextureDimension::k3d, f32);
- EXPECT_EQ(s->dim, TextureDimension::k3d);
+ auto* s = create<MultisampledTexture>(type::TextureDimension::k3d, f32);
+ EXPECT_EQ(s->dim, type::TextureDimension::k3d);
}
TEST_F(AstMultisampledTextureTest, Type) {
auto* f32 = create<F32>();
- auto* s = create<MultisampledTexture>(TextureDimension::k3d, f32);
+ auto* s = create<MultisampledTexture>(type::TextureDimension::k3d, f32);
EXPECT_EQ(s->type, f32);
}
TEST_F(AstMultisampledTextureTest, FriendlyName) {
auto* f32 = create<F32>();
- auto* s = create<MultisampledTexture>(TextureDimension::k3d, f32);
+ auto* s = create<MultisampledTexture>(type::TextureDimension::k3d, f32);
EXPECT_EQ(s->FriendlyName(Symbols()), "texture_multisampled_3d<f32>");
}
diff --git a/src/tint/ast/sampled_texture.cc b/src/tint/ast/sampled_texture.cc
index b8dfd61..cc33962 100644
--- a/src/tint/ast/sampled_texture.cc
+++ b/src/tint/ast/sampled_texture.cc
@@ -23,7 +23,7 @@
SampledTexture::SampledTexture(ProgramID pid,
NodeID nid,
const Source& src,
- TextureDimension d,
+ type::TextureDimension d,
const Type* ty)
: Base(pid, nid, src, d), type(ty) {
TINT_ASSERT(AST, type);
diff --git a/src/tint/ast/sampled_texture.h b/src/tint/ast/sampled_texture.h
index 1f33af3..4ad7aa7 100644
--- a/src/tint/ast/sampled_texture.h
+++ b/src/tint/ast/sampled_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/ast/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
@@ -33,7 +34,7 @@
SampledTexture(ProgramID pid,
NodeID nid,
const Source& src,
- TextureDimension dim,
+ type::TextureDimension dim,
const Type* type);
/// Move constructor
SampledTexture(SampledTexture&&);
diff --git a/src/tint/ast/sampled_texture_test.cc b/src/tint/ast/sampled_texture_test.cc
index f85d2df..4b42da7 100644
--- a/src/tint/ast/sampled_texture_test.cc
+++ b/src/tint/ast/sampled_texture_test.cc
@@ -24,7 +24,7 @@
TEST_F(AstSampledTextureTest, IsTexture) {
auto* f32 = create<F32>();
- Texture* ty = create<SampledTexture>(TextureDimension::kCube, f32);
+ Texture* ty = create<SampledTexture>(type::TextureDimension::kCube, f32);
EXPECT_FALSE(ty->Is<DepthTexture>());
EXPECT_TRUE(ty->Is<SampledTexture>());
EXPECT_FALSE(ty->Is<StorageTexture>());
@@ -32,19 +32,19 @@
TEST_F(AstSampledTextureTest, Dim) {
auto* f32 = create<F32>();
- auto* s = create<SampledTexture>(TextureDimension::k3d, f32);
- EXPECT_EQ(s->dim, TextureDimension::k3d);
+ auto* s = create<SampledTexture>(type::TextureDimension::k3d, f32);
+ EXPECT_EQ(s->dim, type::TextureDimension::k3d);
}
TEST_F(AstSampledTextureTest, Type) {
auto* f32 = create<F32>();
- auto* s = create<SampledTexture>(TextureDimension::k3d, f32);
+ auto* s = create<SampledTexture>(type::TextureDimension::k3d, f32);
EXPECT_EQ(s->type, f32);
}
TEST_F(AstSampledTextureTest, FriendlyName) {
auto* f32 = create<F32>();
- auto* s = create<SampledTexture>(TextureDimension::k3d, f32);
+ auto* s = create<SampledTexture>(type::TextureDimension::k3d, f32);
EXPECT_EQ(s->FriendlyName(Symbols()), "texture_3d<f32>");
}
diff --git a/src/tint/ast/storage_texture.cc b/src/tint/ast/storage_texture.cc
index 0a48a5b..32e233b 100644
--- a/src/tint/ast/storage_texture.cc
+++ b/src/tint/ast/storage_texture.cc
@@ -26,7 +26,7 @@
StorageTexture::StorageTexture(ProgramID pid,
NodeID nid,
const Source& src,
- TextureDimension d,
+ type::TextureDimension d,
TexelFormat fmt,
const Type* subtype,
Access ac)
diff --git a/src/tint/ast/storage_texture.h b/src/tint/ast/storage_texture.h
index 9ae7b95..a16212d 100644
--- a/src/tint/ast/storage_texture.h
+++ b/src/tint/ast/storage_texture.h
@@ -20,6 +20,7 @@
#include "src/tint/ast/access.h"
#include "src/tint/ast/texel_format.h"
#include "src/tint/ast/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
@@ -37,7 +38,7 @@
StorageTexture(ProgramID pid,
NodeID nid,
const Source& src,
- TextureDimension dim,
+ type::TextureDimension dim,
TexelFormat format,
const Type* subtype,
Access access_control);
diff --git a/src/tint/ast/storage_texture_test.cc b/src/tint/ast/storage_texture_test.cc
index 41f3d65..69ee4a0 100644
--- a/src/tint/ast/storage_texture_test.cc
+++ b/src/tint/ast/storage_texture_test.cc
@@ -23,8 +23,8 @@
TEST_F(AstStorageTextureTest, IsTexture) {
auto* subtype = StorageTexture::SubtypeFor(TexelFormat::kRgba32Float, *this);
- Texture* ty = create<StorageTexture>(TextureDimension::k2dArray, TexelFormat::kRgba32Float,
- subtype, Access::kRead);
+ Texture* ty = create<StorageTexture>(type::TextureDimension::k2dArray,
+ TexelFormat::kRgba32Float, subtype, Access::kRead);
EXPECT_FALSE(ty->Is<DepthTexture>());
EXPECT_FALSE(ty->Is<SampledTexture>());
EXPECT_TRUE(ty->Is<StorageTexture>());
@@ -32,29 +32,29 @@
TEST_F(AstStorageTextureTest, Dim) {
auto* subtype = StorageTexture::SubtypeFor(TexelFormat::kRgba32Float, *this);
- auto* s = create<StorageTexture>(TextureDimension::k2dArray, TexelFormat::kRgba32Float, subtype,
- Access::kRead);
- EXPECT_EQ(s->dim, TextureDimension::k2dArray);
+ auto* s = create<StorageTexture>(type::TextureDimension::k2dArray, TexelFormat::kRgba32Float,
+ subtype, Access::kRead);
+ EXPECT_EQ(s->dim, type::TextureDimension::k2dArray);
}
TEST_F(AstStorageTextureTest, Format) {
auto* subtype = StorageTexture::SubtypeFor(TexelFormat::kRgba32Float, *this);
- auto* s = create<StorageTexture>(TextureDimension::k2dArray, TexelFormat::kRgba32Float, subtype,
- Access::kRead);
+ auto* s = create<StorageTexture>(type::TextureDimension::k2dArray, TexelFormat::kRgba32Float,
+ subtype, Access::kRead);
EXPECT_EQ(s->format, TexelFormat::kRgba32Float);
}
TEST_F(AstStorageTextureTest, FriendlyName) {
auto* subtype = StorageTexture::SubtypeFor(TexelFormat::kRgba32Float, *this);
- auto* s = create<StorageTexture>(TextureDimension::k2dArray, TexelFormat::kRgba32Float, subtype,
- Access::kRead);
+ auto* s = create<StorageTexture>(type::TextureDimension::k2dArray, TexelFormat::kRgba32Float,
+ subtype, Access::kRead);
EXPECT_EQ(s->FriendlyName(Symbols()), "texture_storage_2d_array<rgba32float, read>");
}
TEST_F(AstStorageTextureTest, F32) {
auto* subtype = StorageTexture::SubtypeFor(TexelFormat::kRgba32Float, *this);
- Type* s = create<StorageTexture>(TextureDimension::k2dArray, TexelFormat::kRgba32Float, subtype,
- Access::kRead);
+ Type* s = create<StorageTexture>(type::TextureDimension::k2dArray, TexelFormat::kRgba32Float,
+ subtype, Access::kRead);
ASSERT_TRUE(s->Is<Texture>());
ASSERT_TRUE(s->Is<StorageTexture>());
@@ -63,8 +63,8 @@
TEST_F(AstStorageTextureTest, U32) {
auto* subtype = StorageTexture::SubtypeFor(TexelFormat::kRg32Uint, *this);
- Type* s = create<StorageTexture>(TextureDimension::k2dArray, TexelFormat::kRg32Uint, subtype,
- Access::kRead);
+ Type* s = create<StorageTexture>(type::TextureDimension::k2dArray, TexelFormat::kRg32Uint,
+ subtype, Access::kRead);
ASSERT_TRUE(s->Is<Texture>());
ASSERT_TRUE(s->Is<StorageTexture>());
@@ -73,8 +73,8 @@
TEST_F(AstStorageTextureTest, I32) {
auto* subtype = StorageTexture::SubtypeFor(TexelFormat::kRgba32Sint, *this);
- Type* s = create<StorageTexture>(TextureDimension::k2dArray, TexelFormat::kRgba32Sint, subtype,
- Access::kRead);
+ Type* s = create<StorageTexture>(type::TextureDimension::k2dArray, TexelFormat::kRgba32Sint,
+ subtype, Access::kRead);
ASSERT_TRUE(s->Is<Texture>());
ASSERT_TRUE(s->Is<StorageTexture>());
diff --git a/src/tint/ast/texture.cc b/src/tint/ast/texture.cc
index f3c01df..bcfbcb5 100644
--- a/src/tint/ast/texture.cc
+++ b/src/tint/ast/texture.cc
@@ -18,66 +18,39 @@
namespace tint::ast {
-std::ostream& operator<<(std::ostream& out, TextureDimension dim) {
+bool IsTextureArray(type::TextureDimension dim) {
switch (dim) {
- case TextureDimension::kNone:
- out << "None";
- break;
- case TextureDimension::k1d:
- out << "1d";
- break;
- case TextureDimension::k2d:
- out << "2d";
- break;
- case TextureDimension::k2dArray:
- out << "2d_array";
- break;
- case TextureDimension::k3d:
- out << "3d";
- break;
- case TextureDimension::kCube:
- out << "cube";
- break;
- case TextureDimension::kCubeArray:
- out << "cube_array";
- break;
- }
- return out;
-}
-
-bool IsTextureArray(TextureDimension dim) {
- switch (dim) {
- case TextureDimension::k2dArray:
- case TextureDimension::kCubeArray:
+ case type::TextureDimension::k2dArray:
+ case type::TextureDimension::kCubeArray:
return true;
- case TextureDimension::k2d:
- case TextureDimension::kNone:
- case TextureDimension::k1d:
- case TextureDimension::k3d:
- case TextureDimension::kCube:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::kNone:
+ case type::TextureDimension::k1d:
+ case type::TextureDimension::k3d:
+ case type::TextureDimension::kCube:
return false;
}
return false;
}
-int NumCoordinateAxes(TextureDimension dim) {
+int NumCoordinateAxes(type::TextureDimension dim) {
switch (dim) {
- case TextureDimension::kNone:
+ case type::TextureDimension::kNone:
return 0;
- case TextureDimension::k1d:
+ case type::TextureDimension::k1d:
return 1;
- case TextureDimension::k2d:
- case TextureDimension::k2dArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
return 2;
- case TextureDimension::k3d:
- case TextureDimension::kCube:
- case TextureDimension::kCubeArray:
+ case type::TextureDimension::k3d:
+ case type::TextureDimension::kCube:
+ case type::TextureDimension::kCubeArray:
return 3;
}
return 0;
}
-Texture::Texture(ProgramID pid, NodeID nid, const Source& src, TextureDimension d)
+Texture::Texture(ProgramID pid, NodeID nid, const Source& src, type::TextureDimension d)
: Base(pid, nid, src), dim(d) {}
Texture::Texture(Texture&&) = default;
diff --git a/src/tint/ast/texture.h b/src/tint/ast/texture.h
index fcfa334..be78ba9 100644
--- a/src/tint/ast/texture.h
+++ b/src/tint/ast/texture.h
@@ -16,35 +16,13 @@
#define SRC_TINT_AST_TEXTURE_H_
#include "src/tint/ast/type.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
-/// The dimensionality of the texture
-enum class TextureDimension {
- /// Invalid texture
- kNone = -1,
- /// 1 dimensional texture
- k1d,
- /// 2 dimensional texture
- k2d,
- /// 2 dimensional array texture
- k2dArray,
- /// 3 dimensional texture
- k3d,
- /// cube texture
- kCube,
- /// cube array texture
- kCubeArray,
-};
-
-/// @param out the std::ostream to write to
-/// @param dim the TextureDimension
-/// @return the std::ostream so calls can be chained
-std::ostream& operator<<(std::ostream& out, TextureDimension dim);
-
-/// @param dim the TextureDimension to query
-/// @return true if the given TextureDimension is an array texture
-bool IsTextureArray(TextureDimension dim);
+/// @param dim the type::TextureDimension to query
+/// @return true if the given type::TextureDimension is an array texture
+bool IsTextureArray(type::TextureDimension dim);
/// Returns the number of axes in the coordinate used for accessing
/// the texture, where an access is one of: sampling, fetching, load,
@@ -56,9 +34,9 @@
/// Note: To sample a cube texture, the coordinate has 3 dimensions,
/// but textureDimensions on a cube or cube array returns a 2-element
/// size, representing the (x,y) size of each cube face, in texels.
-/// @param dim the TextureDimension to query
+/// @param dim the type::TextureDimension to query
/// @return number of dimensions in a coordinate for the dimensionality
-int NumCoordinateAxes(TextureDimension dim);
+int NumCoordinateAxes(type::TextureDimension dim);
/// A texture type.
class Texture : public Castable<Texture, Type> {
@@ -68,13 +46,13 @@
/// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
- Texture(ProgramID pid, NodeID nid, const Source& src, TextureDimension dim);
+ Texture(ProgramID pid, NodeID nid, const Source& src, type::TextureDimension dim);
/// Move constructor
Texture(Texture&&);
~Texture() override;
/// The texture dimension
- const TextureDimension dim;
+ const type::TextureDimension dim;
};
} // namespace tint::ast
diff --git a/src/tint/ast/texture_test.cc b/src/tint/ast/texture_test.cc
index 7b7c0b0..cad2884 100644
--- a/src/tint/ast/texture_test.cc
+++ b/src/tint/ast/texture_test.cc
@@ -33,23 +33,23 @@
using AstTextureTypeTest = TestHelper;
TEST_F(AstTextureTypeTest, IsTextureArray) {
- EXPECT_EQ(false, IsTextureArray(TextureDimension::kNone));
- EXPECT_EQ(false, IsTextureArray(TextureDimension::k1d));
- EXPECT_EQ(false, IsTextureArray(TextureDimension::k2d));
- EXPECT_EQ(true, IsTextureArray(TextureDimension::k2dArray));
- EXPECT_EQ(false, IsTextureArray(TextureDimension::k3d));
- EXPECT_EQ(false, IsTextureArray(TextureDimension::kCube));
- EXPECT_EQ(true, IsTextureArray(TextureDimension::kCubeArray));
+ EXPECT_EQ(false, IsTextureArray(type::TextureDimension::kNone));
+ EXPECT_EQ(false, IsTextureArray(type::TextureDimension::k1d));
+ EXPECT_EQ(false, IsTextureArray(type::TextureDimension::k2d));
+ EXPECT_EQ(true, IsTextureArray(type::TextureDimension::k2dArray));
+ EXPECT_EQ(false, IsTextureArray(type::TextureDimension::k3d));
+ EXPECT_EQ(false, IsTextureArray(type::TextureDimension::kCube));
+ EXPECT_EQ(true, IsTextureArray(type::TextureDimension::kCubeArray));
}
TEST_F(AstTextureTypeTest, NumCoordinateAxes) {
- EXPECT_EQ(0, NumCoordinateAxes(TextureDimension::kNone));
- EXPECT_EQ(1, NumCoordinateAxes(TextureDimension::k1d));
- EXPECT_EQ(2, NumCoordinateAxes(TextureDimension::k2d));
- EXPECT_EQ(2, NumCoordinateAxes(TextureDimension::k2dArray));
- EXPECT_EQ(3, NumCoordinateAxes(TextureDimension::k3d));
- EXPECT_EQ(3, NumCoordinateAxes(TextureDimension::kCube));
- EXPECT_EQ(3, NumCoordinateAxes(TextureDimension::kCubeArray));
+ EXPECT_EQ(0, NumCoordinateAxes(type::TextureDimension::kNone));
+ EXPECT_EQ(1, NumCoordinateAxes(type::TextureDimension::k1d));
+ EXPECT_EQ(2, NumCoordinateAxes(type::TextureDimension::k2d));
+ EXPECT_EQ(2, NumCoordinateAxes(type::TextureDimension::k2dArray));
+ EXPECT_EQ(3, NumCoordinateAxes(type::TextureDimension::k3d));
+ EXPECT_EQ(3, NumCoordinateAxes(type::TextureDimension::kCube));
+ EXPECT_EQ(3, NumCoordinateAxes(type::TextureDimension::kCubeArray));
}
} // namespace
diff --git a/src/tint/inspector/inspector_test.cc b/src/tint/inspector/inspector_test.cc
index d6c635d..98f75b6 100644
--- a/src/tint/inspector/inspector_test.cc
+++ b/src/tint/inspector/inspector_test.cc
@@ -27,6 +27,7 @@
#include "src/tint/type/external_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "tint/tint.h"
using namespace tint::number_suffixes; // NOLINT
@@ -76,7 +77,7 @@
class InspectorGetSampledArrayTextureResourceBindingsTest : public InspectorBuilder,
public testing::Test {};
struct GetSampledTextureTestParams {
- ast::TextureDimension type_dim;
+ type::TextureDimension type_dim;
inspector::ResourceBinding::TextureDimension inspector_dim;
inspector::ResourceBinding::SampledKind sampled_kind;
};
@@ -100,7 +101,7 @@
class InspectorGetStorageTextureResourceBindingsTest : public InspectorBuilder,
public testing::Test {};
struct GetDepthTextureTestParams {
- ast::TextureDimension type_dim;
+ type::TextureDimension type_dim;
inspector::ResourceBinding::TextureDimension inspector_dim;
};
class InspectorGetDepthTextureResourceBindingsTestWithParam
@@ -110,7 +111,7 @@
class InspectorGetDepthMultisampledTextureResourceBindingsTest : public InspectorBuilder,
public testing::Test {};
-typedef std::tuple<ast::TextureDimension, ResourceBinding::TextureDimension> DimensionParams;
+typedef std::tuple<type::TextureDimension, ResourceBinding::TextureDimension> DimensionParams;
typedef std::tuple<ast::TexelFormat, ResourceBinding::TexelFormat, ResourceBinding::SampledKind>
TexelFormatParams;
typedef std::tuple<DimensionParams, TexelFormatParams> GetStorageTextureTestParams;
@@ -1784,14 +1785,14 @@
MemberInfo{0, ty.i32()},
});
- auto* s_texture_type = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* s_texture_type = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
AddResource("s_texture", s_texture_type, 2, 0);
AddSampler("s_var", 3, 0);
AddGlobalVariable("s_coords", ty.f32());
MakeSamplerReferenceBodyFunction("s_func", "s_texture", "s_var", "s_coords", ty.f32(),
utils::Empty);
- auto* cs_depth_texture_type = ty.depth_texture(ast::TextureDimension::k2d);
+ auto* cs_depth_texture_type = ty.depth_texture(type::TextureDimension::k2d);
AddResource("cs_texture", cs_depth_texture_type, 3, 1);
AddComparisonSampler("cs_var", 3, 2);
AddGlobalVariable("cs_coords", ty.vec2<f32>());
@@ -1799,14 +1800,15 @@
MakeComparisonSamplerReferenceBodyFunction("cs_func", "cs_texture", "cs_var", "cs_coords",
"cs_depth", ty.f32(), utils::Empty);
- auto* depth_ms_texture_type = ty.depth_multisampled_texture(ast::TextureDimension::k2d);
+ auto* depth_ms_texture_type = ty.depth_multisampled_texture(type::TextureDimension::k2d);
AddResource("depth_ms_texture", depth_ms_texture_type, 3, 3);
Func("depth_ms_func", utils::Empty, ty.void_(),
utils::Vector{
Ignore("depth_ms_texture"),
});
- auto* st_type = MakeStorageTextureTypes(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint);
+ auto* st_type =
+ MakeStorageTextureTypes(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint);
AddStorageTexture("st_var", st_type, 4, 0);
MakeStorageTextureBodyFunction("st_func", "st_var", ty.vec2<u32>(), utils::Empty);
@@ -2586,7 +2588,7 @@
}
TEST_F(InspectorGetSamplerResourceBindingsTest, Simple) {
- auto* sampled_texture_type = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* sampled_texture_type = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
AddResource("foo_texture", sampled_texture_type, 0, 0);
AddSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.f32());
@@ -2621,7 +2623,7 @@
}
TEST_F(InspectorGetSamplerResourceBindingsTest, InFunction) {
- auto* sampled_texture_type = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* sampled_texture_type = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
AddResource("foo_texture", sampled_texture_type, 0, 0);
AddSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.f32());
@@ -2646,7 +2648,7 @@
}
TEST_F(InspectorGetSamplerResourceBindingsTest, UnknownEntryPoint) {
- auto* sampled_texture_type = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* sampled_texture_type = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
AddResource("foo_texture", sampled_texture_type, 0, 0);
AddSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.f32());
@@ -2663,7 +2665,7 @@
}
TEST_F(InspectorGetSamplerResourceBindingsTest, SkipsComparisonSamplers) {
- auto* depth_texture_type = ty.depth_texture(ast::TextureDimension::k2d);
+ auto* depth_texture_type = ty.depth_texture(type::TextureDimension::k2d);
AddResource("foo_texture", depth_texture_type, 0, 0);
AddComparisonSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.vec2<f32>());
@@ -2684,7 +2686,7 @@
}
TEST_F(InspectorGetComparisonSamplerResourceBindingsTest, Simple) {
- auto* depth_texture_type = ty.depth_texture(ast::TextureDimension::k2d);
+ auto* depth_texture_type = ty.depth_texture(type::TextureDimension::k2d);
AddResource("foo_texture", depth_texture_type, 0, 0);
AddComparisonSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.vec2<f32>());
@@ -2721,7 +2723,7 @@
}
TEST_F(InspectorGetComparisonSamplerResourceBindingsTest, InFunction) {
- auto* depth_texture_type = ty.depth_texture(ast::TextureDimension::k2d);
+ auto* depth_texture_type = ty.depth_texture(type::TextureDimension::k2d);
AddResource("foo_texture", depth_texture_type, 0, 0);
AddComparisonSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.vec2<f32>());
@@ -2747,7 +2749,7 @@
}
TEST_F(InspectorGetComparisonSamplerResourceBindingsTest, UnknownEntryPoint) {
- auto* depth_texture_type = ty.depth_texture(ast::TextureDimension::k2d);
+ auto* depth_texture_type = ty.depth_texture(type::TextureDimension::k2d);
AddResource("foo_texture", depth_texture_type, 0, 0);
AddComparisonSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.vec2<f32>());
@@ -2766,7 +2768,7 @@
}
TEST_F(InspectorGetComparisonSamplerResourceBindingsTest, SkipsSamplers) {
- auto* sampled_texture_type = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* sampled_texture_type = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
AddResource("foo_texture", sampled_texture_type, 0, 0);
AddSampler("foo_sampler", 0, 1);
AddGlobalVariable("foo_coords", ty.f32());
@@ -2833,16 +2835,16 @@
INSTANTIATE_TEST_SUITE_P(
InspectorGetSampledTextureResourceBindingsTest,
InspectorGetSampledTextureResourceBindingsTestWithParam,
- testing::Values(GetSampledTextureTestParams{ast::TextureDimension::k1d,
+ testing::Values(GetSampledTextureTestParams{type::TextureDimension::k1d,
inspector::ResourceBinding::TextureDimension::k1d,
inspector::ResourceBinding::SampledKind::kFloat},
- GetSampledTextureTestParams{ast::TextureDimension::k2d,
+ GetSampledTextureTestParams{type::TextureDimension::k2d,
inspector::ResourceBinding::TextureDimension::k2d,
inspector::ResourceBinding::SampledKind::kFloat},
- GetSampledTextureTestParams{ast::TextureDimension::k3d,
+ GetSampledTextureTestParams{type::TextureDimension::k3d,
inspector::ResourceBinding::TextureDimension::k3d,
inspector::ResourceBinding::SampledKind::kFloat},
- GetSampledTextureTestParams{ast::TextureDimension::kCube,
+ GetSampledTextureTestParams{type::TextureDimension::kCube,
inspector::ResourceBinding::TextureDimension::kCube,
inspector::ResourceBinding::SampledKind::kFloat}));
@@ -2878,10 +2880,10 @@
InspectorGetSampledArrayTextureResourceBindingsTest,
InspectorGetSampledArrayTextureResourceBindingsTestWithParam,
testing::Values(
- GetSampledTextureTestParams{ast::TextureDimension::k2dArray,
+ GetSampledTextureTestParams{type::TextureDimension::k2dArray,
inspector::ResourceBinding::TextureDimension::k2dArray,
inspector::ResourceBinding::SampledKind::kFloat},
- GetSampledTextureTestParams{ast::TextureDimension::kCubeArray,
+ GetSampledTextureTestParams{type::TextureDimension::kCubeArray,
inspector::ResourceBinding::TextureDimension::kCubeArray,
inspector::ResourceBinding::SampledKind::kFloat}));
@@ -2924,13 +2926,13 @@
InspectorGetMultisampledTextureResourceBindingsTest,
InspectorGetMultisampledTextureResourceBindingsTestWithParam,
testing::Values(
- GetMultisampledTextureTestParams{ast::TextureDimension::k2d,
+ GetMultisampledTextureTestParams{type::TextureDimension::k2d,
inspector::ResourceBinding::TextureDimension::k2d,
inspector::ResourceBinding::SampledKind::kFloat},
- GetMultisampledTextureTestParams{ast::TextureDimension::k2d,
+ GetMultisampledTextureTestParams{type::TextureDimension::k2d,
inspector::ResourceBinding::TextureDimension::k2d,
inspector::ResourceBinding::SampledKind::kSInt},
- GetMultisampledTextureTestParams{ast::TextureDimension::k2d,
+ GetMultisampledTextureTestParams{type::TextureDimension::k2d,
inspector::ResourceBinding::TextureDimension::k2d,
inspector::ResourceBinding::SampledKind::kUInt}));
@@ -2964,7 +2966,7 @@
TexelFormatParams format_params;
std::tie(dim_params, format_params) = GetParam();
- ast::TextureDimension dim;
+ type::TextureDimension dim;
ResourceBinding::TextureDimension expected_dim;
std::tie(dim, expected_dim) = dim_params;
@@ -2978,14 +2980,14 @@
const ast::Type* dim_type = nullptr;
switch (dim) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
dim_type = ty.u32();
break;
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
dim_type = ty.vec2<u32>();
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
dim_type = ty.vec3<u32>();
break;
default:
@@ -3016,13 +3018,13 @@
INSTANTIATE_TEST_SUITE_P(
InspectorGetStorageTextureResourceBindingsTest,
InspectorGetStorageTextureResourceBindingsTestWithParam,
- testing::Combine(testing::Values(std::make_tuple(ast::TextureDimension::k1d,
+ testing::Combine(testing::Values(std::make_tuple(type::TextureDimension::k1d,
ResourceBinding::TextureDimension::k1d),
- std::make_tuple(ast::TextureDimension::k2d,
+ std::make_tuple(type::TextureDimension::k2d,
ResourceBinding::TextureDimension::k2d),
- std::make_tuple(ast::TextureDimension::k2dArray,
+ std::make_tuple(type::TextureDimension::k2dArray,
ResourceBinding::TextureDimension::k2dArray),
- std::make_tuple(ast::TextureDimension::k3d,
+ std::make_tuple(type::TextureDimension::k3d,
ResourceBinding::TextureDimension::k3d)),
testing::Values(std::make_tuple(ast::TexelFormat::kR32Float,
ResourceBinding::TexelFormat::kR32Float,
@@ -3101,17 +3103,17 @@
InspectorGetDepthTextureResourceBindingsTest,
InspectorGetDepthTextureResourceBindingsTestWithParam,
testing::Values(
- GetDepthTextureTestParams{ast::TextureDimension::k2d,
+ GetDepthTextureTestParams{type::TextureDimension::k2d,
inspector::ResourceBinding::TextureDimension::k2d},
- GetDepthTextureTestParams{ast::TextureDimension::k2dArray,
+ GetDepthTextureTestParams{type::TextureDimension::k2dArray,
inspector::ResourceBinding::TextureDimension::k2dArray},
- GetDepthTextureTestParams{ast::TextureDimension::kCube,
+ GetDepthTextureTestParams{type::TextureDimension::kCube,
inspector::ResourceBinding::TextureDimension::kCube},
- GetDepthTextureTestParams{ast::TextureDimension::kCubeArray,
+ GetDepthTextureTestParams{type::TextureDimension::kCubeArray,
inspector::ResourceBinding::TextureDimension::kCubeArray}));
TEST_F(InspectorGetDepthMultisampledTextureResourceBindingsTest, textureDimensions) {
- auto* depth_ms_texture_type = ty.depth_multisampled_texture(ast::TextureDimension::k2d);
+ auto* depth_ms_texture_type = ty.depth_multisampled_texture(type::TextureDimension::k2d);
AddResource("tex", depth_ms_texture_type, 0, 0);
Func("ep", utils::Empty, ty.void_(),
diff --git a/src/tint/inspector/resource_binding.cc b/src/tint/inspector/resource_binding.cc
index 4dd26e0..fbaf47a 100644
--- a/src/tint/inspector/resource_binding.cc
+++ b/src/tint/inspector/resource_binding.cc
@@ -18,6 +18,7 @@
#include "src/tint/type/f32.h"
#include "src/tint/type/i32.h"
#include "src/tint/type/matrix.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/type/type.h"
#include "src/tint/type/u32.h"
#include "src/tint/type/vector.h"
@@ -25,21 +26,21 @@
namespace tint::inspector {
ResourceBinding::TextureDimension TypeTextureDimensionToResourceBindingTextureDimension(
- const ast::TextureDimension& type_dim) {
+ const type::TextureDimension& type_dim) {
switch (type_dim) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
return ResourceBinding::TextureDimension::k1d;
- case ast::TextureDimension::k2d:
+ case type::TextureDimension::k2d:
return ResourceBinding::TextureDimension::k2d;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
return ResourceBinding::TextureDimension::k2dArray;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
return ResourceBinding::TextureDimension::k3d;
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::kCube:
return ResourceBinding::TextureDimension::kCube;
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCubeArray:
return ResourceBinding::TextureDimension::kCubeArray;
- case ast::TextureDimension::kNone:
+ case type::TextureDimension::kNone:
return ResourceBinding::TextureDimension::kNone;
}
return ResourceBinding::TextureDimension::kNone;
diff --git a/src/tint/inspector/resource_binding.h b/src/tint/inspector/resource_binding.h
index ef22578..386d188 100644
--- a/src/tint/inspector/resource_binding.h
+++ b/src/tint/inspector/resource_binding.h
@@ -18,7 +18,7 @@
#include <cstdint>
#include "src/tint/ast/storage_texture.h"
-#include "src/tint/ast/texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/type/type.h"
namespace tint::inspector {
@@ -104,12 +104,12 @@
TexelFormat image_format;
};
-/// Convert from internal ast::TextureDimension to public
+/// Convert from internal type::TextureDimension to public
/// ResourceBinding::TextureDimension
/// @param type_dim internal value to convert from
/// @returns the publicly visible equivalent
ResourceBinding::TextureDimension TypeTextureDimensionToResourceBindingTextureDimension(
- const ast::TextureDimension& type_dim);
+ const type::TextureDimension& type_dim);
/// Infer ResourceBinding::SampledKind for a given type::Type
/// @param base_type internal type to infer from
diff --git a/src/tint/inspector/test_inspector_builder.cc b/src/tint/inspector/test_inspector_builder.cc
index 97ae097..81d8f39 100644
--- a/src/tint/inspector/test_inspector_builder.cc
+++ b/src/tint/inspector/test_inspector_builder.cc
@@ -259,17 +259,17 @@
}
}
-const ast::Type* InspectorBuilder::GetCoordsType(ast::TextureDimension dim,
+const ast::Type* InspectorBuilder::GetCoordsType(type::TextureDimension dim,
const ast::Type* scalar) {
switch (dim) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
return scalar;
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
return create<ast::Vector>(scalar, 2u);
- case ast::TextureDimension::k3d:
- case ast::TextureDimension::kCube:
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::k3d:
+ case type::TextureDimension::kCube:
+ case type::TextureDimension::kCubeArray:
return create<ast::Vector>(scalar, 3u);
default:
[=]() { FAIL() << "Unsupported texture dimension: " << dim; }();
@@ -277,7 +277,7 @@
return nullptr;
}
-const ast::Type* InspectorBuilder::MakeStorageTextureTypes(ast::TextureDimension dim,
+const ast::Type* InspectorBuilder::MakeStorageTextureTypes(type::TextureDimension dim,
ast::TexelFormat format) {
return ty.storage_texture(dim, format, ast::Access::kWrite);
}
diff --git a/src/tint/inspector/test_inspector_builder.h b/src/tint/inspector/test_inspector_builder.h
index 8439bd6..36c70b7 100644
--- a/src/tint/inspector/test_inspector_builder.h
+++ b/src/tint/inspector/test_inspector_builder.h
@@ -31,6 +31,7 @@
#include "src/tint/type/external_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "tint/tint.h"
namespace tint::inspector {
@@ -287,13 +288,13 @@
/// @param dim dimensionality of the texture being sampled
/// @param scalar the scalar type
/// @returns a pointer to a type appropriate for the coord param
- const ast::Type* GetCoordsType(ast::TextureDimension dim, const ast::Type* scalar);
+ const ast::Type* GetCoordsType(type::TextureDimension dim, const ast::Type* scalar);
/// Generates appropriate types for a Read-Only StorageTexture
/// @param dim the texture dimension of the storage texture
/// @param format the texel format of the storage texture
/// @returns the storage texture type
- const ast::Type* MakeStorageTextureTypes(ast::TextureDimension dim, ast::TexelFormat format);
+ const ast::Type* MakeStorageTextureTypes(type::TextureDimension dim, ast::TexelFormat format);
/// Adds a storage texture variable to the program
/// @param name the name of the variable
diff --git a/src/tint/program_builder.h b/src/tint/program_builder.h
index 9b688f0..e593181 100644
--- a/src/tint/program_builder.h
+++ b/src/tint/program_builder.h
@@ -107,6 +107,7 @@
#include "src/tint/type/pointer.h"
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/type/u32.h"
#include "src/tint/type/vector.h"
#include "src/tint/type/void.h"
@@ -1012,7 +1013,7 @@
/// @param dims the dimensionality of the texture
/// @returns the depth texture
- const ast::DepthTexture* depth_texture(ast::TextureDimension dims) const {
+ const ast::DepthTexture* depth_texture(type::TextureDimension dims) const {
return builder->create<ast::DepthTexture>(dims);
}
@@ -1020,14 +1021,14 @@
/// @param dims the dimensionality of the texture
/// @returns the depth texture
const ast::DepthTexture* depth_texture(const Source& source,
- ast::TextureDimension dims) const {
+ type::TextureDimension dims) const {
return builder->create<ast::DepthTexture>(source, dims);
}
/// @param dims the dimensionality of the texture
/// @returns the multisampled depth texture
const ast::DepthMultisampledTexture* depth_multisampled_texture(
- ast::TextureDimension dims) const {
+ type::TextureDimension dims) const {
return builder->create<ast::DepthMultisampledTexture>(dims);
}
@@ -1036,14 +1037,14 @@
/// @returns the multisampled depth texture
const ast::DepthMultisampledTexture* depth_multisampled_texture(
const Source& source,
- ast::TextureDimension dims) const {
+ type::TextureDimension dims) const {
return builder->create<ast::DepthMultisampledTexture>(source, dims);
}
/// @param dims the dimensionality of the texture
/// @param subtype the texture subtype.
/// @returns the sampled texture
- const ast::SampledTexture* sampled_texture(ast::TextureDimension dims,
+ const ast::SampledTexture* sampled_texture(type::TextureDimension dims,
const ast::Type* subtype) const {
return builder->create<ast::SampledTexture>(dims, subtype);
}
@@ -1053,7 +1054,7 @@
/// @param subtype the texture subtype.
/// @returns the sampled texture
const ast::SampledTexture* sampled_texture(const Source& source,
- ast::TextureDimension dims,
+ type::TextureDimension dims,
const ast::Type* subtype) const {
return builder->create<ast::SampledTexture>(source, dims, subtype);
}
@@ -1061,7 +1062,7 @@
/// @param dims the dimensionality of the texture
/// @param subtype the texture subtype.
/// @returns the multisampled texture
- const ast::MultisampledTexture* multisampled_texture(ast::TextureDimension dims,
+ const ast::MultisampledTexture* multisampled_texture(type::TextureDimension dims,
const ast::Type* subtype) const {
return builder->create<ast::MultisampledTexture>(dims, subtype);
}
@@ -1071,7 +1072,7 @@
/// @param subtype the texture subtype.
/// @returns the multisampled texture
const ast::MultisampledTexture* multisampled_texture(const Source& source,
- ast::TextureDimension dims,
+ type::TextureDimension dims,
const ast::Type* subtype) const {
return builder->create<ast::MultisampledTexture>(source, dims, subtype);
}
@@ -1080,7 +1081,7 @@
/// @param format the texel format of the texture
/// @param access the access control of the texture
/// @returns the storage texture
- const ast::StorageTexture* storage_texture(ast::TextureDimension dims,
+ const ast::StorageTexture* storage_texture(type::TextureDimension dims,
ast::TexelFormat format,
ast::Access access) const {
auto* subtype = ast::StorageTexture::SubtypeFor(format, *builder);
@@ -1093,7 +1094,7 @@
/// @param access the access control of the texture
/// @returns the storage texture
const ast::StorageTexture* storage_texture(const Source& source,
- ast::TextureDimension dims,
+ type::TextureDimension dims,
ast::TexelFormat format,
ast::Access access) const {
auto* subtype = ast::StorageTexture::SubtypeFor(format, *builder);
diff --git a/src/tint/reader/spirv/enum_converter.cc b/src/tint/reader/spirv/enum_converter.cc
index 8c70156..2ac571d 100644
--- a/src/tint/reader/spirv/enum_converter.cc
+++ b/src/tint/reader/spirv/enum_converter.cc
@@ -14,6 +14,8 @@
#include "src/tint/reader/spirv/enum_converter.h"
+#include "src/tint/type/texture_dimension.h"
+
namespace tint::reader::spirv {
EnumConverter::EnumConverter(const FailStream& fs) : fail_stream_(fs) {}
@@ -98,34 +100,34 @@
return ast::BuiltinValue::kUndefined;
}
-ast::TextureDimension EnumConverter::ToDim(spv::Dim dim, bool arrayed) {
+type::TextureDimension EnumConverter::ToDim(spv::Dim dim, bool arrayed) {
if (arrayed) {
switch (dim) {
case spv::Dim::Dim2D:
- return ast::TextureDimension::k2dArray;
+ return type::TextureDimension::k2dArray;
case spv::Dim::Cube:
- return ast::TextureDimension::kCubeArray;
+ return type::TextureDimension::kCubeArray;
default:
break;
}
Fail() << "arrayed dimension must be 2D or Cube. Got " << int(dim);
- return ast::TextureDimension::kNone;
+ return type::TextureDimension::kNone;
}
// Assume non-arrayed
switch (dim) {
case spv::Dim::Dim1D:
- return ast::TextureDimension::k1d;
+ return type::TextureDimension::k1d;
case spv::Dim::Dim2D:
- return ast::TextureDimension::k2d;
+ return type::TextureDimension::k2d;
case spv::Dim::Dim3D:
- return ast::TextureDimension::k3d;
+ return type::TextureDimension::k3d;
case spv::Dim::Cube:
- return ast::TextureDimension::kCube;
+ return type::TextureDimension::kCube;
default:
break;
}
Fail() << "invalid dimension: " << int(dim);
- return ast::TextureDimension::kNone;
+ return type::TextureDimension::kNone;
}
ast::TexelFormat EnumConverter::ToTexelFormat(spv::ImageFormat fmt) {
diff --git a/src/tint/reader/spirv/enum_converter.h b/src/tint/reader/spirv/enum_converter.h
index 6b7a889..507fd77 100644
--- a/src/tint/reader/spirv/enum_converter.h
+++ b/src/tint/reader/spirv/enum_converter.h
@@ -22,6 +22,7 @@
#include "src/tint/ast/pipeline_stage.h"
#include "src/tint/reader/spirv/fail_stream.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::reader::spirv {
@@ -57,14 +58,14 @@
/// @param dim the SPIR-V Dim value
/// @param arrayed true if the texture is arrayed
/// @returns a Tint AST texture dimension
- ast::TextureDimension ToDim(spv::Dim dim, bool arrayed);
+ type::TextureDimension ToDim(spv::Dim dim, bool arrayed);
/// Converts a possibly arrayed SPIR-V Dim to a Tint texture dimension.
/// On failure, logs an error and returns kNone
/// @param dim the SPIR-V Dim value
/// @param arrayed true if the texture is arrayed
/// @returns a Tint AST texture dimension
- ast::TextureDimension ToDim(SpvDim dim, bool arrayed) {
+ type::TextureDimension ToDim(SpvDim dim, bool arrayed) {
return ToDim(static_cast<spv::Dim>(dim), arrayed);
}
diff --git a/src/tint/reader/spirv/enum_converter_test.cc b/src/tint/reader/spirv/enum_converter_test.cc
index bdb0247..f49abca 100644
--- a/src/tint/reader/spirv/enum_converter_test.cc
+++ b/src/tint/reader/spirv/enum_converter_test.cc
@@ -17,6 +17,7 @@
#include <string>
#include "gmock/gmock.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::reader::spirv {
namespace {
@@ -217,7 +218,7 @@
spv::Dim dim;
bool arrayed;
bool expect_success;
- ast::TextureDimension expected;
+ type::TextureDimension expected;
};
inline std::ostream& operator<<(std::ostream& out, DimCase dc) {
out << "DimCase{ spv::Dim:::" << int(dc.dim) << " arrayed?:" << int(dc.arrayed)
@@ -256,31 +257,31 @@
SpvDimTest,
testing::Values(
// Non-arrayed
- DimCase{spv::Dim::Dim1D, false, true, ast::TextureDimension::k1d},
- DimCase{spv::Dim::Dim2D, false, true, ast::TextureDimension::k2d},
- DimCase{spv::Dim::Dim3D, false, true, ast::TextureDimension::k3d},
- DimCase{spv::Dim::Cube, false, true, ast::TextureDimension::kCube},
+ DimCase{spv::Dim::Dim1D, false, true, type::TextureDimension::k1d},
+ DimCase{spv::Dim::Dim2D, false, true, type::TextureDimension::k2d},
+ DimCase{spv::Dim::Dim3D, false, true, type::TextureDimension::k3d},
+ DimCase{spv::Dim::Cube, false, true, type::TextureDimension::kCube},
// Arrayed
- DimCase{spv::Dim::Dim2D, true, true, ast::TextureDimension::k2dArray},
+ DimCase{spv::Dim::Dim2D, true, true, type::TextureDimension::k2dArray},
DimCase{spv::Dim::Cube, true, true,
- ast::TextureDimension::kCubeArray}));
+ type::TextureDimension::kCubeArray}));
INSTANTIATE_TEST_SUITE_P(
EnumConverterBad,
SpvDimTest,
testing::Values(
// Invalid SPIR-V dimensionality.
- DimCase{spv::Dim::Max, false, false, ast::TextureDimension::kNone},
- DimCase{spv::Dim::Max, true, false, ast::TextureDimension::kNone},
+ DimCase{spv::Dim::Max, false, false, type::TextureDimension::kNone},
+ DimCase{spv::Dim::Max, true, false, type::TextureDimension::kNone},
// Vulkan non-arrayed dimensionalities not supported by WGSL.
- DimCase{spv::Dim::Rect, false, false, ast::TextureDimension::kNone},
- DimCase{spv::Dim::Buffer, false, false, ast::TextureDimension::kNone},
- DimCase{spv::Dim::SubpassData, false, false, ast::TextureDimension::kNone},
+ DimCase{spv::Dim::Rect, false, false, type::TextureDimension::kNone},
+ DimCase{spv::Dim::Buffer, false, false, type::TextureDimension::kNone},
+ DimCase{spv::Dim::SubpassData, false, false, type::TextureDimension::kNone},
// Arrayed dimensionalities not supported by WGSL
- DimCase{spv::Dim::Dim3D, true, false, ast::TextureDimension::kNone},
- DimCase{spv::Dim::Rect, true, false, ast::TextureDimension::kNone},
- DimCase{spv::Dim::Buffer, true, false, ast::TextureDimension::kNone},
- DimCase{spv::Dim::SubpassData, true, false, ast::TextureDimension::kNone}));
+ DimCase{spv::Dim::Dim3D, true, false, type::TextureDimension::kNone},
+ DimCase{spv::Dim::Rect, true, false, type::TextureDimension::kNone},
+ DimCase{spv::Dim::Buffer, true, false, type::TextureDimension::kNone},
+ DimCase{spv::Dim::SubpassData, true, false, type::TextureDimension::kNone}));
// TexelFormat
diff --git a/src/tint/reader/spirv/function.cc b/src/tint/reader/spirv/function.cc
index a0b257b..0bae341 100644
--- a/src/tint/reader/spirv/function.cc
+++ b/src/tint/reader/spirv/function.cc
@@ -36,6 +36,7 @@
#include "src/tint/transform/spirv_atomic.h"
#include "src/tint/type/depth_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hashmap.h"
#include "src/tint/utils/hashset.h"
@@ -5619,9 +5620,9 @@
<< inst.PrettyPrint();
}
switch (texture_type->dims) {
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
+ case type::TextureDimension::k3d:
break;
default:
return Fail() << "ConstOffset is only permitted for 2D, 2D Arrayed, "
@@ -5749,8 +5750,8 @@
const ast::Expression* dims_call =
create<ast::CallExpression>(Source{}, dims_ident, dims_args);
auto dims = texture_type->dims;
- if ((dims == ast::TextureDimension::kCube) ||
- (dims == ast::TextureDimension::kCubeArray)) {
+ if ((dims == type::TextureDimension::kCube) ||
+ (dims == type::TextureDimension::kCubeArray)) {
// textureDimension returns a 3-element vector but SPIR-V expects 2.
dims_call =
create<ast::MemberAccessorExpression>(Source{}, dims_call, PrefixSwizzle(2));
@@ -5952,7 +5953,7 @@
if (!texture_type) {
return {};
}
- ast::TextureDimension dim = texture_type->dims;
+ type::TextureDimension dim = texture_type->dims;
// Number of regular coordinates.
uint32_t num_axes = static_cast<uint32_t>(ast::NumCoordinateAxes(dim));
bool is_arrayed = ast::IsTextureArray(dim);
diff --git a/src/tint/reader/spirv/parser_impl.cc b/src/tint/reader/spirv/parser_impl.cc
index 4fa4b2f..84e07ed 100644
--- a/src/tint/reader/spirv/parser_impl.cc
+++ b/src/tint/reader/spirv/parser_impl.cc
@@ -30,6 +30,7 @@
#include "src/tint/type/depth_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/unique_vector.h"
namespace tint::reader::spirv {
@@ -2481,9 +2482,9 @@
}
}
- const ast::TextureDimension dim =
+ const type::TextureDimension dim =
enum_converter_.ToDim(image_type->dim(), image_type->is_arrayed());
- if (dim == ast::TextureDimension::kNone) {
+ if (dim == type::TextureDimension::kNone) {
return nullptr;
}
@@ -2506,7 +2507,7 @@
ast_handle_type = ty_.DepthTexture(dim);
}
} else if (image_type->is_multisampled()) {
- if (dim != ast::TextureDimension::k2d) {
+ if (dim != type::TextureDimension::k2d) {
Fail() << "WGSL multisampled textures must be 2d and non-arrayed: "
"invalid multisampled texture variable or function parameter "
<< namer_.Name(obj.result_id()) << ": " << obj.PrettyPrint();
diff --git a/src/tint/reader/spirv/parser_type.cc b/src/tint/reader/spirv/parser_type.cc
index 04036f2..ef46c18 100644
--- a/src/tint/reader/spirv/parser_type.cc
+++ b/src/tint/reader/spirv/parser_type.cc
@@ -19,6 +19,7 @@
#include <utility>
#include "src/tint/program_builder.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hash.h"
#include "src/tint/utils/map.h"
#include "src/tint/utils/string.h"
@@ -222,24 +223,24 @@
return b.ty.sampler(kind);
}
-Texture::Texture(ast::TextureDimension d) : dims(d) {}
+Texture::Texture(type::TextureDimension d) : dims(d) {}
Texture::Texture(const Texture&) = default;
-DepthTexture::DepthTexture(ast::TextureDimension d) : Base(d) {}
+DepthTexture::DepthTexture(type::TextureDimension d) : Base(d) {}
DepthTexture::DepthTexture(const DepthTexture&) = default;
const ast::Type* DepthTexture::Build(ProgramBuilder& b) const {
return b.ty.depth_texture(dims);
}
-DepthMultisampledTexture::DepthMultisampledTexture(ast::TextureDimension d) : Base(d) {}
+DepthMultisampledTexture::DepthMultisampledTexture(type::TextureDimension d) : Base(d) {}
DepthMultisampledTexture::DepthMultisampledTexture(const DepthMultisampledTexture&) = default;
const ast::Type* DepthMultisampledTexture::Build(ProgramBuilder& b) const {
return b.ty.depth_multisampled_texture(dims);
}
-MultisampledTexture::MultisampledTexture(ast::TextureDimension d, const Type* t)
+MultisampledTexture::MultisampledTexture(type::TextureDimension d, const Type* t)
: Base(d), type(t) {}
MultisampledTexture::MultisampledTexture(const MultisampledTexture&) = default;
@@ -247,14 +248,14 @@
return b.ty.multisampled_texture(dims, type->Build(b));
}
-SampledTexture::SampledTexture(ast::TextureDimension d, const Type* t) : Base(d), type(t) {}
+SampledTexture::SampledTexture(type::TextureDimension d, const Type* t) : Base(d), type(t) {}
SampledTexture::SampledTexture(const SampledTexture&) = default;
const ast::Type* SampledTexture::Build(ProgramBuilder& b) const {
return b.ty.sampled_texture(dims, type->Build(b));
}
-StorageTexture::StorageTexture(ast::TextureDimension d, ast::TexelFormat f, ast::Access a)
+StorageTexture::StorageTexture(type::TextureDimension d, ast::TexelFormat f, ast::Access a)
: Base(d), format(f), access(a) {}
StorageTexture::StorageTexture(const StorageTexture&) = default;
@@ -494,26 +495,26 @@
return state->samplers_.Get(kind);
}
-const spirv::DepthTexture* TypeManager::DepthTexture(ast::TextureDimension dims) {
+const spirv::DepthTexture* TypeManager::DepthTexture(type::TextureDimension dims) {
return state->depth_textures_.Get(dims);
}
const spirv::DepthMultisampledTexture* TypeManager::DepthMultisampledTexture(
- ast::TextureDimension dims) {
+ type::TextureDimension dims) {
return state->depth_multisampled_textures_.Get(dims);
}
-const spirv::MultisampledTexture* TypeManager::MultisampledTexture(ast::TextureDimension dims,
+const spirv::MultisampledTexture* TypeManager::MultisampledTexture(type::TextureDimension dims,
const Type* ty) {
return state->multisampled_textures_.Get(dims, ty);
}
-const spirv::SampledTexture* TypeManager::SampledTexture(ast::TextureDimension dims,
+const spirv::SampledTexture* TypeManager::SampledTexture(type::TextureDimension dims,
const Type* ty) {
return state->sampled_textures_.Get(dims, ty);
}
-const spirv::StorageTexture* TypeManager::StorageTexture(ast::TextureDimension dims,
+const spirv::StorageTexture* TypeManager::StorageTexture(type::TextureDimension dims,
ast::TexelFormat fmt,
ast::Access access) {
return state->storage_textures_.Get(dims, fmt, access);
diff --git a/src/tint/reader/spirv/parser_type.h b/src/tint/reader/spirv/parser_type.h
index 43c311c..4d42292 100644
--- a/src/tint/reader/spirv/parser_type.h
+++ b/src/tint/reader/spirv/parser_type.h
@@ -23,8 +23,8 @@
#include "src/tint/ast/address_space.h"
#include "src/tint/ast/sampler.h"
#include "src/tint/ast/storage_texture.h"
-#include "src/tint/ast/texture.h"
#include "src/tint/castable.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/block_allocator.h"
// Forward declarations
@@ -331,21 +331,21 @@
/// Constructor
/// @param d the texture dimensions
- explicit Texture(ast::TextureDimension d);
+ explicit Texture(type::TextureDimension d);
/// Copy constructor
/// @param other the other type to copy
Texture(const Texture& other);
/// the texture dimensions
- ast::TextureDimension const dims;
+ type::TextureDimension const dims;
};
/// `texture_depth_D` type
struct DepthTexture final : public Castable<DepthTexture, Texture> {
/// Constructor
/// @param d the texture dimensions
- explicit DepthTexture(ast::TextureDimension d);
+ explicit DepthTexture(type::TextureDimension d);
/// Copy constructor
/// @param other the other type to copy
@@ -365,7 +365,7 @@
struct DepthMultisampledTexture final : public Castable<DepthMultisampledTexture, Texture> {
/// Constructor
/// @param d the texture dimensions
- explicit DepthMultisampledTexture(ast::TextureDimension d);
+ explicit DepthMultisampledTexture(type::TextureDimension d);
/// Copy constructor
/// @param other the other type to copy
@@ -386,7 +386,7 @@
/// Constructor
/// @param d the texture dimensions
/// @param t the multisampled texture type
- MultisampledTexture(ast::TextureDimension d, const Type* t);
+ MultisampledTexture(type::TextureDimension d, const Type* t);
/// Copy constructor
/// @param other the other type to copy
@@ -410,7 +410,7 @@
/// Constructor
/// @param d the texture dimensions
/// @param t the sampled texture type
- SampledTexture(ast::TextureDimension d, const Type* t);
+ SampledTexture(type::TextureDimension d, const Type* t);
/// Copy constructor
/// @param other the other type to copy
@@ -435,7 +435,7 @@
/// @param d the texture dimensions
/// @param f the storage image format
/// @param a the access control
- StorageTexture(ast::TextureDimension d, ast::TexelFormat f, ast::Access a);
+ StorageTexture(type::TextureDimension d, ast::TexelFormat f, ast::Access a);
/// Copy constructor
/// @param other the other type to copy
@@ -595,27 +595,27 @@
/// @param d the texture dimensions
/// @return a DepthTexture type. Repeated calls with the same arguments will
/// return the same pointer.
- const spirv::DepthTexture* DepthTexture(ast::TextureDimension d);
+ const spirv::DepthTexture* DepthTexture(type::TextureDimension d);
/// @param d the texture dimensions
/// @return a DepthMultisampledTexture type. Repeated calls with the same
/// arguments will return the same pointer.
- const spirv::DepthMultisampledTexture* DepthMultisampledTexture(ast::TextureDimension d);
+ const spirv::DepthMultisampledTexture* DepthMultisampledTexture(type::TextureDimension d);
/// @param d the texture dimensions
/// @param t the multisampled texture type
/// @return a MultisampledTexture type. Repeated calls with the same arguments
/// will return the same pointer.
- const spirv::MultisampledTexture* MultisampledTexture(ast::TextureDimension d, const Type* t);
+ const spirv::MultisampledTexture* MultisampledTexture(type::TextureDimension d, const Type* t);
/// @param d the texture dimensions
/// @param t the sampled texture type
/// @return a SampledTexture type. Repeated calls with the same arguments will
/// return the same pointer.
- const spirv::SampledTexture* SampledTexture(ast::TextureDimension d, const Type* t);
+ const spirv::SampledTexture* SampledTexture(type::TextureDimension d, const Type* t);
/// @param d the texture dimensions
/// @param f the storage image format
/// @param a the access control
/// @return a StorageTexture type. Repeated calls with the same arguments will
/// return the same pointer.
- const spirv::StorageTexture* StorageTexture(ast::TextureDimension d,
+ const spirv::StorageTexture* StorageTexture(type::TextureDimension d,
ast::TexelFormat f,
ast::Access a);
diff --git a/src/tint/reader/spirv/parser_type_test.cc b/src/tint/reader/spirv/parser_type_test.cc
index 90a8da2..392b637 100644
--- a/src/tint/reader/spirv/parser_type_test.cc
+++ b/src/tint/reader/spirv/parser_type_test.cc
@@ -15,6 +15,7 @@
#include "gtest/gtest.h"
#include "src/tint/reader/spirv/parser_type.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::reader::spirv {
namespace {
@@ -36,15 +37,15 @@
EXPECT_EQ(ty.Alias(sym, ty.I32()), ty.Alias(sym, ty.I32()));
EXPECT_EQ(ty.Struct(sym, {ty.I32()}), ty.Struct(sym, {ty.I32()}));
EXPECT_EQ(ty.Sampler(ast::SamplerKind::kSampler), ty.Sampler(ast::SamplerKind::kSampler));
- EXPECT_EQ(ty.DepthTexture(ast::TextureDimension::k2d),
- ty.DepthTexture(ast::TextureDimension::k2d));
- EXPECT_EQ(ty.MultisampledTexture(ast::TextureDimension::k2d, ty.I32()),
- ty.MultisampledTexture(ast::TextureDimension::k2d, ty.I32()));
- EXPECT_EQ(ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()),
- ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()));
- EXPECT_EQ(ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ EXPECT_EQ(ty.DepthTexture(type::TextureDimension::k2d),
+ ty.DepthTexture(type::TextureDimension::k2d));
+ EXPECT_EQ(ty.MultisampledTexture(type::TextureDimension::k2d, ty.I32()),
+ ty.MultisampledTexture(type::TextureDimension::k2d, ty.I32()));
+ EXPECT_EQ(ty.SampledTexture(type::TextureDimension::k2d, ty.I32()),
+ ty.SampledTexture(type::TextureDimension::k2d, ty.I32()));
+ EXPECT_EQ(ty.StorageTexture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kRead),
- ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ ty.StorageTexture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kRead));
}
@@ -69,27 +70,27 @@
EXPECT_NE(ty.Struct(sym_a, {ty.I32()}), ty.Struct(sym_b, {ty.I32()}));
EXPECT_NE(ty.Sampler(ast::SamplerKind::kSampler),
ty.Sampler(ast::SamplerKind::kComparisonSampler));
- EXPECT_NE(ty.DepthTexture(ast::TextureDimension::k2d),
- ty.DepthTexture(ast::TextureDimension::k1d));
- EXPECT_NE(ty.MultisampledTexture(ast::TextureDimension::k2d, ty.I32()),
- ty.MultisampledTexture(ast::TextureDimension::k3d, ty.I32()));
- EXPECT_NE(ty.MultisampledTexture(ast::TextureDimension::k2d, ty.I32()),
- ty.MultisampledTexture(ast::TextureDimension::k2d, ty.U32()));
- EXPECT_NE(ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()),
- ty.SampledTexture(ast::TextureDimension::k3d, ty.I32()));
- EXPECT_NE(ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()),
- ty.SampledTexture(ast::TextureDimension::k2d, ty.U32()));
- EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ EXPECT_NE(ty.DepthTexture(type::TextureDimension::k2d),
+ ty.DepthTexture(type::TextureDimension::k1d));
+ EXPECT_NE(ty.MultisampledTexture(type::TextureDimension::k2d, ty.I32()),
+ ty.MultisampledTexture(type::TextureDimension::k3d, ty.I32()));
+ EXPECT_NE(ty.MultisampledTexture(type::TextureDimension::k2d, ty.I32()),
+ ty.MultisampledTexture(type::TextureDimension::k2d, ty.U32()));
+ EXPECT_NE(ty.SampledTexture(type::TextureDimension::k2d, ty.I32()),
+ ty.SampledTexture(type::TextureDimension::k3d, ty.I32()));
+ EXPECT_NE(ty.SampledTexture(type::TextureDimension::k2d, ty.I32()),
+ ty.SampledTexture(type::TextureDimension::k2d, ty.U32()));
+ EXPECT_NE(ty.StorageTexture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kRead),
- ty.StorageTexture(ast::TextureDimension::k3d, ast::TexelFormat::kR32Uint,
+ ty.StorageTexture(type::TextureDimension::k3d, ast::TexelFormat::kR32Uint,
ast::Access::kRead));
- EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ EXPECT_NE(ty.StorageTexture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kRead),
- ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Sint,
+ ty.StorageTexture(type::TextureDimension::k2d, ast::TexelFormat::kR32Sint,
ast::Access::kRead));
- EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ EXPECT_NE(ty.StorageTexture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kRead),
- ty.StorageTexture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ ty.StorageTexture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kWrite));
}
diff --git a/src/tint/reader/wgsl/parser_impl.cc b/src/tint/reader/wgsl/parser_impl.cc
index d35a87e..132e294 100644
--- a/src/tint/reader/wgsl/parser_impl.cc
+++ b/src/tint/reader/wgsl/parser_impl.cc
@@ -43,6 +43,7 @@
#include "src/tint/type/external_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/reverse.h"
#include "src/tint/utils/string.h"
@@ -806,29 +807,29 @@
// | TEXTURE_SAMPLED_3D
// | TEXTURE_SAMPLED_CUBE
// | TEXTURE_SAMPLED_CUBE_ARRAY
-Maybe<const ast::TextureDimension> ParserImpl::sampled_texture_type() {
+Maybe<const type::TextureDimension> ParserImpl::sampled_texture_type() {
if (match(Token::Type::kTextureSampled1d)) {
- return ast::TextureDimension::k1d;
+ return type::TextureDimension::k1d;
}
if (match(Token::Type::kTextureSampled2d)) {
- return ast::TextureDimension::k2d;
+ return type::TextureDimension::k2d;
}
if (match(Token::Type::kTextureSampled2dArray)) {
- return ast::TextureDimension::k2dArray;
+ return type::TextureDimension::k2dArray;
}
if (match(Token::Type::kTextureSampled3d)) {
- return ast::TextureDimension::k3d;
+ return type::TextureDimension::k3d;
}
if (match(Token::Type::kTextureSampledCube)) {
- return ast::TextureDimension::kCube;
+ return type::TextureDimension::kCube;
}
if (match(Token::Type::kTextureSampledCubeArray)) {
- return ast::TextureDimension::kCubeArray;
+ return type::TextureDimension::kCubeArray;
}
return Failure::kNoMatch;
@@ -847,9 +848,9 @@
// multisampled_texture_type
// : TEXTURE_MULTISAMPLED_2D
-Maybe<const ast::TextureDimension> ParserImpl::multisampled_texture_type() {
+Maybe<const type::TextureDimension> ParserImpl::multisampled_texture_type() {
if (match(Token::Type::kTextureMultisampled2d)) {
- return ast::TextureDimension::k2d;
+ return type::TextureDimension::k2d;
}
return Failure::kNoMatch;
@@ -860,18 +861,18 @@
// | TEXTURE_STORAGE_2D
// | TEXTURE_STORAGE_2D_ARRAY
// | TEXTURE_STORAGE_3D
-Maybe<const ast::TextureDimension> ParserImpl::storage_texture_type() {
+Maybe<const type::TextureDimension> ParserImpl::storage_texture_type() {
if (match(Token::Type::kTextureStorage1d)) {
- return ast::TextureDimension::k1d;
+ return type::TextureDimension::k1d;
}
if (match(Token::Type::kTextureStorage2d)) {
- return ast::TextureDimension::k2d;
+ return type::TextureDimension::k2d;
}
if (match(Token::Type::kTextureStorage2dArray)) {
- return ast::TextureDimension::k2dArray;
+ return type::TextureDimension::k2dArray;
}
if (match(Token::Type::kTextureStorage3d)) {
- return ast::TextureDimension::k3d;
+ return type::TextureDimension::k3d;
}
return Failure::kNoMatch;
@@ -886,19 +887,19 @@
Maybe<const ast::Type*> ParserImpl::depth_texture_type() {
Source source;
if (match(Token::Type::kTextureDepth2d, &source)) {
- return builder_.ty.depth_texture(source, ast::TextureDimension::k2d);
+ return builder_.ty.depth_texture(source, type::TextureDimension::k2d);
}
if (match(Token::Type::kTextureDepth2dArray, &source)) {
- return builder_.ty.depth_texture(source, ast::TextureDimension::k2dArray);
+ return builder_.ty.depth_texture(source, type::TextureDimension::k2dArray);
}
if (match(Token::Type::kTextureDepthCube, &source)) {
- return builder_.ty.depth_texture(source, ast::TextureDimension::kCube);
+ return builder_.ty.depth_texture(source, type::TextureDimension::kCube);
}
if (match(Token::Type::kTextureDepthCubeArray, &source)) {
- return builder_.ty.depth_texture(source, ast::TextureDimension::kCubeArray);
+ return builder_.ty.depth_texture(source, type::TextureDimension::kCubeArray);
}
if (match(Token::Type::kTextureDepthMultisampled2d, &source)) {
- return builder_.ty.depth_multisampled_texture(source, ast::TextureDimension::k2d);
+ return builder_.ty.depth_multisampled_texture(source, type::TextureDimension::k2d);
}
return Failure::kNoMatch;
}
diff --git a/src/tint/reader/wgsl/parser_impl.h b/src/tint/reader/wgsl/parser_impl.h
index 5f64853..23e74bf 100644
--- a/src/tint/reader/wgsl/parser_impl.h
+++ b/src/tint/reader/wgsl/parser_impl.h
@@ -27,6 +27,7 @@
#include "src/tint/reader/wgsl/parser_impl_detail.h"
#include "src/tint/reader/wgsl/token.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::ast {
class BreakStatement;
@@ -486,14 +487,14 @@
/// Parses a `multisampled_texture_type` grammar element
/// @returns returns the multisample texture dimension or kNone if none
/// matched.
- Maybe<const ast::TextureDimension> multisampled_texture_type();
+ Maybe<const type::TextureDimension> multisampled_texture_type();
/// Parses a `sampled_texture_type` grammar element
/// @returns returns the sample texture dimension or kNone if none matched.
- Maybe<const ast::TextureDimension> sampled_texture_type();
+ Maybe<const type::TextureDimension> sampled_texture_type();
/// Parses a `storage_texture_type` grammar element
/// @returns returns the storage texture dimension.
/// Returns kNone if none matched.
- Maybe<const ast::TextureDimension> storage_texture_type();
+ Maybe<const type::TextureDimension> storage_texture_type();
/// Parses a `depth_texture_type` grammar element
/// @returns the parsed Type or nullptr if none matched.
Maybe<const ast::Type*> depth_texture_type();
diff --git a/src/tint/reader/wgsl/parser_impl_depth_texture_test.cc b/src/tint/reader/wgsl/parser_impl_depth_texture_test.cc
index fbd8ffb..dc8ddbf 100644
--- a/src/tint/reader/wgsl/parser_impl_depth_texture_test.cc
+++ b/src/tint/reader/wgsl/parser_impl_depth_texture_test.cc
@@ -14,6 +14,7 @@
#include "src/tint/reader/wgsl/parser_impl_test_helper.h"
#include "src/tint/type/depth_texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::reader::wgsl {
namespace {
@@ -34,7 +35,7 @@
ASSERT_NE(t.value, nullptr);
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::DepthTexture>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k2d);
EXPECT_FALSE(p->has_error());
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 17u}}));
}
@@ -47,7 +48,7 @@
ASSERT_NE(t.value, nullptr);
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::DepthTexture>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2dArray);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k2dArray);
EXPECT_FALSE(p->has_error());
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 23u}}));
}
@@ -60,7 +61,7 @@
ASSERT_NE(t.value, nullptr);
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::DepthTexture>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::kCube);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::kCube);
EXPECT_FALSE(p->has_error());
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 19u}}));
}
@@ -73,7 +74,7 @@
ASSERT_NE(t.value, nullptr);
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::DepthTexture>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::kCubeArray);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::kCubeArray);
EXPECT_FALSE(p->has_error());
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 25u}}));
}
@@ -86,7 +87,7 @@
ASSERT_NE(t.value, nullptr);
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::DepthMultisampledTexture>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k2d);
EXPECT_FALSE(p->has_error());
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 30u}}));
}
diff --git a/src/tint/reader/wgsl/parser_impl_sampled_texture_test.cc b/src/tint/reader/wgsl/parser_impl_sampled_texture_test.cc
index 6aa1aab..5a2d38a 100644
--- a/src/tint/reader/wgsl/parser_impl_sampled_texture_test.cc
+++ b/src/tint/reader/wgsl/parser_impl_sampled_texture_test.cc
@@ -13,6 +13,7 @@
// limitations under the License.
#include "src/tint/reader/wgsl/parser_impl_test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::reader::wgsl {
namespace {
@@ -30,7 +31,7 @@
auto t = p->sampled_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k1d);
+ EXPECT_EQ(t.value, type::TextureDimension::k1d);
EXPECT_FALSE(p->has_error());
}
@@ -39,7 +40,7 @@
auto t = p->sampled_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k2d);
+ EXPECT_EQ(t.value, type::TextureDimension::k2d);
EXPECT_FALSE(p->has_error());
}
@@ -48,7 +49,7 @@
auto t = p->sampled_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k2dArray);
+ EXPECT_EQ(t.value, type::TextureDimension::k2dArray);
EXPECT_FALSE(p->has_error());
}
@@ -57,7 +58,7 @@
auto t = p->sampled_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k3d);
+ EXPECT_EQ(t.value, type::TextureDimension::k3d);
EXPECT_FALSE(p->has_error());
}
@@ -66,7 +67,7 @@
auto t = p->sampled_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::kCube);
+ EXPECT_EQ(t.value, type::TextureDimension::kCube);
EXPECT_FALSE(p->has_error());
}
@@ -75,7 +76,7 @@
auto t = p->sampled_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::kCubeArray);
+ EXPECT_EQ(t.value, type::TextureDimension::kCubeArray);
EXPECT_FALSE(p->has_error());
}
diff --git a/src/tint/reader/wgsl/parser_impl_storage_texture_test.cc b/src/tint/reader/wgsl/parser_impl_storage_texture_test.cc
index 528f3a4..e1c25b6 100644
--- a/src/tint/reader/wgsl/parser_impl_storage_texture_test.cc
+++ b/src/tint/reader/wgsl/parser_impl_storage_texture_test.cc
@@ -13,6 +13,7 @@
// limitations under the License.
#include "src/tint/reader/wgsl/parser_impl_test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::reader::wgsl {
namespace {
@@ -30,7 +31,7 @@
auto t = p->storage_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k1d);
+ EXPECT_EQ(t.value, type::TextureDimension::k1d);
EXPECT_FALSE(p->has_error());
}
@@ -39,7 +40,7 @@
auto t = p->storage_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k2d);
+ EXPECT_EQ(t.value, type::TextureDimension::k2d);
EXPECT_FALSE(p->has_error());
}
@@ -48,7 +49,7 @@
auto t = p->storage_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k2dArray);
+ EXPECT_EQ(t.value, type::TextureDimension::k2dArray);
EXPECT_FALSE(p->has_error());
}
@@ -57,7 +58,7 @@
auto t = p->storage_texture_type();
EXPECT_TRUE(t.matched);
EXPECT_FALSE(t.errored);
- EXPECT_EQ(t.value, ast::TextureDimension::k3d);
+ EXPECT_EQ(t.value, type::TextureDimension::k3d);
EXPECT_FALSE(p->has_error());
}
diff --git a/src/tint/reader/wgsl/parser_impl_texture_sampler_test.cc b/src/tint/reader/wgsl/parser_impl_texture_sampler_test.cc
index 01a4241..41fab41 100644
--- a/src/tint/reader/wgsl/parser_impl_texture_sampler_test.cc
+++ b/src/tint/reader/wgsl/parser_impl_texture_sampler_test.cc
@@ -16,6 +16,7 @@
#include "src/tint/type/depth_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::reader::wgsl {
namespace {
@@ -62,7 +63,7 @@
ASSERT_NE(t.value, nullptr);
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::DepthTexture>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k2d);
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 17u}}));
}
@@ -76,7 +77,7 @@
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::SampledTexture>());
ASSERT_TRUE(t->As<ast::SampledTexture>()->type->Is<ast::F32>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k1d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k1d);
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 16u}}));
}
@@ -90,7 +91,7 @@
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::SampledTexture>());
ASSERT_TRUE(t->As<ast::SampledTexture>()->type->Is<ast::I32>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k2d);
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 16u}}));
}
@@ -104,7 +105,7 @@
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::SampledTexture>());
ASSERT_TRUE(t->As<ast::SampledTexture>()->type->Is<ast::U32>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k3d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k3d);
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 16u}}));
}
@@ -148,7 +149,7 @@
ASSERT_TRUE(t->Is<ast::Texture>());
ASSERT_TRUE(t->Is<ast::MultisampledTexture>());
ASSERT_TRUE(t->As<ast::MultisampledTexture>()->type->Is<ast::I32>());
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k2d);
EXPECT_EQ(t.value->source.range, (Source::Range{{1u, 1u}, {1u, 29u}}));
}
@@ -192,7 +193,7 @@
ASSERT_TRUE(t->Is<ast::StorageTexture>());
EXPECT_EQ(t->As<ast::StorageTexture>()->format, ast::TexelFormat::kRg32Float);
EXPECT_EQ(t->As<ast::StorageTexture>()->access, ast::Access::kRead);
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k1d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k1d);
EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 36u}}));
}
@@ -208,7 +209,7 @@
ASSERT_TRUE(t->Is<ast::StorageTexture>());
EXPECT_EQ(t->As<ast::StorageTexture>()->format, ast::TexelFormat::kR32Uint);
EXPECT_EQ(t->As<ast::StorageTexture>()->access, ast::Access::kWrite);
- EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2d);
+ EXPECT_EQ(t->As<ast::Texture>()->dim, type::TextureDimension::k2d);
EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 35u}}));
}
diff --git a/src/tint/resolver/assignment_validation_test.cc b/src/tint/resolver/assignment_validation_test.cc
index ce8b314..d7ad488 100644
--- a/src/tint/resolver/assignment_validation_test.cc
+++ b/src/tint/resolver/assignment_validation_test.cc
@@ -17,6 +17,7 @@
#include "gmock/gmock.h"
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
using namespace tint::number_suffixes; // NOLINT
@@ -230,7 +231,7 @@
// a = b;
auto make_type = [&] {
- return ty.storage_texture(ast::TextureDimension::k1d, ast::TexelFormat::kRgba8Unorm,
+ return ty.storage_texture(type::TextureDimension::k1d, ast::TexelFormat::kRgba8Unorm,
ast::Access::kWrite);
};
@@ -360,7 +361,7 @@
auto* U = Structure("U", utils::Vector{
Member("i", ty.i32()),
});
- GlobalVar("tex", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(0_a),
+ GlobalVar("tex", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(0_a),
Binding(0_a));
GlobalVar("smp", ty.sampler(ast::SamplerKind::kSampler), Group(0_a), Binding(1_a));
GlobalVar("u", ty.Of(U), ast::AddressSpace::kUniform, Group(0_a), Binding(2_a));
diff --git a/src/tint/resolver/attribute_validation_test.cc b/src/tint/resolver/attribute_validation_test.cc
index 762eea9..3c01f86 100644
--- a/src/tint/resolver/attribute_validation_test.cc
+++ b/src/tint/resolver/attribute_validation_test.cc
@@ -16,6 +16,7 @@
#include "src/tint/resolver/resolver.h"
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/transform/add_block_attribute.h"
+#include "src/tint/type/texture_dimension.h"
#include "gmock/gmock.h"
@@ -1166,7 +1167,7 @@
}
TEST_F(ResourceAttributeTest, TextureMissingBinding) {
- GlobalVar(Source{{12, 34}}, "G", ty.depth_texture(ast::TextureDimension::k2d));
+ GlobalVar(Source{{12, 34}}, "G", ty.depth_texture(type::TextureDimension::k2d));
EXPECT_FALSE(r()->Resolve());
EXPECT_EQ(r()->error(),
@@ -1198,9 +1199,9 @@
}
TEST_F(ResourceAttributeTest, BindingPointUsedTwiceByEntryPoint) {
- GlobalVar(Source{{12, 34}}, "A", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar(Source{{12, 34}}, "A", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(1_a), Group(2_a));
- GlobalVar(Source{{56, 78}}, "B", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar(Source{{56, 78}}, "B", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(1_a), Group(2_a));
Func("F", utils::Empty, ty.void_(),
@@ -1220,9 +1221,9 @@
}
TEST_F(ResourceAttributeTest, BindingPointUsedTwiceByDifferentEntryPoints) {
- GlobalVar(Source{{12, 34}}, "A", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar(Source{{12, 34}}, "A", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(1_a), Group(2_a));
- GlobalVar(Source{{56, 78}}, "B", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar(Source{{56, 78}}, "B", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(1_a), Group(2_a));
Func("F_A", utils::Empty, ty.void_(),
@@ -1582,7 +1583,7 @@
TEST_F(GroupAndBindingTest, Const_I32) {
GlobalConst("b", Expr(4_i));
GlobalConst("g", Expr(2_i));
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Binding("b"),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Binding("b"),
Group("g"));
EXPECT_TRUE(r()->Resolve()) << r()->error();
@@ -1591,7 +1592,7 @@
TEST_F(GroupAndBindingTest, Const_U32) {
GlobalConst("b", Expr(4_u));
GlobalConst("g", Expr(2_u));
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Binding("b"),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Binding("b"),
Group("g"));
EXPECT_TRUE(r()->Resolve()) << r()->error();
@@ -1600,14 +1601,14 @@
TEST_F(GroupAndBindingTest, Const_AInt) {
GlobalConst("b", Expr(4_a));
GlobalConst("g", Expr(2_a));
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Binding("b"),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Binding("b"),
Group("g"));
EXPECT_TRUE(r()->Resolve()) << r()->error();
}
TEST_F(GroupAndBindingTest, Binding_NonConstant) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(Construct(ty.u32(), Call(Source{{12, 34}}, "dpdx", 1_a))), Group(1_i));
EXPECT_FALSE(r()->Resolve());
@@ -1617,7 +1618,7 @@
}
TEST_F(GroupAndBindingTest, Binding_Negative) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(Source{{12, 34}}, -2_i), Group(1_i));
EXPECT_FALSE(r()->Resolve());
@@ -1625,7 +1626,7 @@
}
TEST_F(GroupAndBindingTest, Binding_F32) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(Source{{12, 34}}, 2.0_f), Group(1_u));
EXPECT_FALSE(r()->Resolve());
@@ -1633,7 +1634,7 @@
}
TEST_F(GroupAndBindingTest, Binding_AFloat) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
Binding(Source{{12, 34}}, 2.0_a), Group(1_u));
EXPECT_FALSE(r()->Resolve());
@@ -1641,7 +1642,7 @@
}
TEST_F(GroupAndBindingTest, Group_NonConstant) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Binding(2_u),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Binding(2_u),
Group(Construct(ty.u32(), Call(Source{{12, 34}}, "dpdx", 1_a))));
EXPECT_FALSE(r()->Resolve());
@@ -1651,7 +1652,7 @@
}
TEST_F(GroupAndBindingTest, Group_Negative) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Binding(2_u),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Binding(2_u),
Group(Source{{12, 34}}, -1_i));
EXPECT_FALSE(r()->Resolve());
@@ -1659,7 +1660,7 @@
}
TEST_F(GroupAndBindingTest, Group_F32) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Binding(2_u),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Binding(2_u),
Group(Source{{12, 34}}, 1.0_f));
EXPECT_FALSE(r()->Resolve());
@@ -1667,7 +1668,7 @@
}
TEST_F(GroupAndBindingTest, Group_AFloat) {
- GlobalVar("val", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Binding(2_u),
+ GlobalVar("val", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Binding(2_u),
Group(Source{{12, 34}}, 1.0_a));
EXPECT_FALSE(r()->Resolve());
diff --git a/src/tint/resolver/builtin_test.cc b/src/tint/resolver/builtin_test.cc
index 955b945..b2b1e30 100644
--- a/src/tint/resolver/builtin_test.cc
+++ b/src/tint/resolver/builtin_test.cc
@@ -36,6 +36,7 @@
#include "src/tint/sem/variable.h"
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
using ::testing::ElementsAre;
using ::testing::HasSubstr;
@@ -2102,7 +2103,7 @@
}
struct TextureTestParams {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
Texture type = Texture::kF32;
ast::TexelFormat format = ast::TexelFormat::kR32Float;
};
@@ -2118,16 +2119,16 @@
/// @param dim dimensionality of the texture being sampled
/// @param scalar the scalar type
/// @returns a pointer to a type appropriate for the coord param
- const ast::Type* GetCoordsType(ast::TextureDimension dim, const ast::Type* scalar) {
+ const ast::Type* GetCoordsType(type::TextureDimension dim, const ast::Type* scalar) {
switch (dim) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
return scalar;
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
return ty.vec(scalar, 2);
- case ast::TextureDimension::k3d:
- case ast::TextureDimension::kCube:
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::k3d:
+ case type::TextureDimension::kCube:
+ case type::TextureDimension::kCubeArray:
return ty.vec(scalar, 3);
default:
[=]() { FAIL() << "Unsupported texture dimension: " << dim; }();
@@ -2169,7 +2170,7 @@
add_call_param("texture", texture_type, &call_params);
add_call_param("coords", coords_type, &call_params);
- if (dim == ast::TextureDimension::k2dArray) {
+ if (dim == type::TextureDimension::k2dArray) {
add_call_param("array_index", ty.i32(), &call_params);
}
add_call_param("level", ty.i32(), &call_params);
@@ -2193,10 +2194,10 @@
INSTANTIATE_TEST_SUITE_P(ResolverTest,
ResolverBuiltinTest_SampledTextureOperation,
- testing::Values(TextureTestParams{ast::TextureDimension::k1d},
- TextureTestParams{ast::TextureDimension::k2d},
- TextureTestParams{ast::TextureDimension::k2dArray},
- TextureTestParams{ast::TextureDimension::k3d}));
+ testing::Values(TextureTestParams{type::TextureDimension::k1d},
+ TextureTestParams{type::TextureDimension::k2d},
+ TextureTestParams{type::TextureDimension::k2dArray},
+ TextureTestParams{type::TextureDimension::k3d}));
using ResolverBuiltinTest_Texture = ResolverTestWithParam<ast::builtin::test::TextureOverloadCase>;
@@ -2469,20 +2470,20 @@
switch (param.texture_dimension) {
default:
FAIL() << "invalid texture dimensions: " << param.texture_dimension;
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
EXPECT_TRUE(TypeOf(call)->Is<type::U32>());
break;
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
- case ast::TextureDimension::kCube:
- case ast::TextureDimension::kCubeArray: {
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
+ case type::TextureDimension::kCube:
+ case type::TextureDimension::kCubeArray: {
auto* vec = As<type::Vector>(TypeOf(call));
ASSERT_NE(vec, nullptr);
EXPECT_EQ(vec->Width(), 2u);
EXPECT_TRUE(vec->type()->Is<type::U32>());
break;
}
- case ast::TextureDimension::k3d: {
+ case type::TextureDimension::k3d: {
auto* vec = As<type::Vector>(TypeOf(call));
ASSERT_NE(vec, nullptr);
EXPECT_EQ(vec->Width(), 3u);
diff --git a/src/tint/resolver/dependency_graph_test.cc b/src/tint/resolver/dependency_graph_test.cc
index 81e79ff..b73033c 100644
--- a/src/tint/resolver/dependency_graph_test.cc
+++ b/src/tint/resolver/dependency_graph_test.cc
@@ -19,6 +19,7 @@
#include "gmock/gmock.h"
#include "src/tint/resolver/dependency_graph.h"
#include "src/tint/resolver/resolver_test_helper.h"
+#include "src/tint/type/texture_dimension.h"
using namespace tint::number_suffixes; // NOLINT
@@ -493,12 +494,12 @@
}
case SymbolUseKind::GlobalVarSampledTexElemType: {
auto* node = b.ty.type_name(source, symbol);
- b.GlobalVar(b.Sym(), b.ty.sampled_texture(ast::TextureDimension::k2d, node));
+ b.GlobalVar(b.Sym(), b.ty.sampled_texture(type::TextureDimension::k2d, node));
return node;
}
case SymbolUseKind::GlobalVarMultisampledTexElemType: {
auto* node = b.ty.type_name(source, symbol);
- b.GlobalVar(b.Sym(), b.ty.multisampled_texture(ast::TextureDimension::k2d, node));
+ b.GlobalVar(b.Sym(), b.ty.multisampled_texture(type::TextureDimension::k2d, node));
return node;
}
case SymbolUseKind::GlobalVarValue: {
@@ -1290,12 +1291,12 @@
GlobalVar(Sym(), ty.vec3(T));
GlobalVar(Sym(), ty.mat3x2(T));
GlobalVar(Sym(), ty.pointer(T, ast::AddressSpace::kPrivate));
- GlobalVar(Sym(), ty.sampled_texture(ast::TextureDimension::k2d, T));
- GlobalVar(Sym(), ty.depth_texture(ast::TextureDimension::k2d));
- GlobalVar(Sym(), ty.depth_multisampled_texture(ast::TextureDimension::k2d));
+ GlobalVar(Sym(), ty.sampled_texture(type::TextureDimension::k2d, T));
+ GlobalVar(Sym(), ty.depth_texture(type::TextureDimension::k2d));
+ GlobalVar(Sym(), ty.depth_multisampled_texture(type::TextureDimension::k2d));
GlobalVar(Sym(), ty.external_texture());
- GlobalVar(Sym(), ty.multisampled_texture(ast::TextureDimension::k2d, T));
- GlobalVar(Sym(), ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Float,
+ GlobalVar(Sym(), ty.multisampled_texture(type::TextureDimension::k2d, T));
+ GlobalVar(Sym(), ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Float,
ast::Access::kRead)); //
GlobalVar(Sym(), ty.sampler(ast::SamplerKind::kSampler));
diff --git a/src/tint/resolver/intrinsic_table.cc b/src/tint/resolver/intrinsic_table.cc
index 4b507b8..129fcc3 100644
--- a/src/tint/resolver/intrinsic_table.cc
+++ b/src/tint/resolver/intrinsic_table.cc
@@ -34,6 +34,7 @@
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hash.h"
#include "src/tint/utils/hashmap.h"
#include "src/tint/utils/math.h"
@@ -605,7 +606,7 @@
bool match_texture(MatchState&,
const type::Type* ty,
- ast::TextureDimension dim,
+ type::TextureDimension dim,
const type::Type*& T) {
if (ty->Is<Any>()) {
T = ty;
@@ -632,17 +633,17 @@
return state.builder.create<type::SampledTexture>(dim, T); \
}
-DECLARE_SAMPLED_TEXTURE(1d, ast::TextureDimension::k1d)
-DECLARE_SAMPLED_TEXTURE(2d, ast::TextureDimension::k2d)
-DECLARE_SAMPLED_TEXTURE(2d_array, ast::TextureDimension::k2dArray)
-DECLARE_SAMPLED_TEXTURE(3d, ast::TextureDimension::k3d)
-DECLARE_SAMPLED_TEXTURE(cube, ast::TextureDimension::kCube)
-DECLARE_SAMPLED_TEXTURE(cube_array, ast::TextureDimension::kCubeArray)
+DECLARE_SAMPLED_TEXTURE(1d, type::TextureDimension::k1d)
+DECLARE_SAMPLED_TEXTURE(2d, type::TextureDimension::k2d)
+DECLARE_SAMPLED_TEXTURE(2d_array, type::TextureDimension::k2dArray)
+DECLARE_SAMPLED_TEXTURE(3d, type::TextureDimension::k3d)
+DECLARE_SAMPLED_TEXTURE(cube, type::TextureDimension::kCube)
+DECLARE_SAMPLED_TEXTURE(cube_array, type::TextureDimension::kCubeArray)
#undef DECLARE_SAMPLED_TEXTURE
bool match_texture_multisampled(MatchState&,
const type::Type* ty,
- ast::TextureDimension dim,
+ type::TextureDimension dim,
const type::Type*& T) {
if (ty->Is<Any>()) {
T = ty;
@@ -667,10 +668,10 @@
return state.builder.create<type::MultisampledTexture>(dim, T); \
}
-DECLARE_MULTISAMPLED_TEXTURE(2d, ast::TextureDimension::k2d)
+DECLARE_MULTISAMPLED_TEXTURE(2d, type::TextureDimension::k2d)
#undef DECLARE_MULTISAMPLED_TEXTURE
-bool match_texture_depth(MatchState&, const type::Type* ty, ast::TextureDimension dim) {
+bool match_texture_depth(MatchState&, const type::Type* ty, type::TextureDimension dim) {
if (ty->Is<Any>()) {
return true;
}
@@ -685,10 +686,10 @@
return state.builder.create<type::DepthTexture>(dim); \
}
-DECLARE_DEPTH_TEXTURE(2d, ast::TextureDimension::k2d)
-DECLARE_DEPTH_TEXTURE(2d_array, ast::TextureDimension::k2dArray)
-DECLARE_DEPTH_TEXTURE(cube, ast::TextureDimension::kCube)
-DECLARE_DEPTH_TEXTURE(cube_array, ast::TextureDimension::kCubeArray)
+DECLARE_DEPTH_TEXTURE(2d, type::TextureDimension::k2d)
+DECLARE_DEPTH_TEXTURE(2d_array, type::TextureDimension::k2dArray)
+DECLARE_DEPTH_TEXTURE(cube, type::TextureDimension::kCube)
+DECLARE_DEPTH_TEXTURE(cube_array, type::TextureDimension::kCubeArray)
#undef DECLARE_DEPTH_TEXTURE
bool match_texture_depth_multisampled_2d(MatchState&, const type::Type* ty) {
@@ -696,17 +697,17 @@
return true;
}
return ty->Is([&](const type::DepthMultisampledTexture* t) {
- return t->dim() == ast::TextureDimension::k2d;
+ return t->dim() == type::TextureDimension::k2d;
});
}
type::DepthMultisampledTexture* build_texture_depth_multisampled_2d(MatchState& state) {
- return state.builder.create<type::DepthMultisampledTexture>(ast::TextureDimension::k2d);
+ return state.builder.create<type::DepthMultisampledTexture>(type::TextureDimension::k2d);
}
bool match_texture_storage(MatchState&,
const type::Type* ty,
- ast::TextureDimension dim,
+ type::TextureDimension dim,
Number& F,
Number& A) {
if (ty->Is<Any>()) {
@@ -737,10 +738,10 @@
return state.builder.create<type::StorageTexture>(dim, format, access, T); \
}
-DECLARE_STORAGE_TEXTURE(1d, ast::TextureDimension::k1d)
-DECLARE_STORAGE_TEXTURE(2d, ast::TextureDimension::k2d)
-DECLARE_STORAGE_TEXTURE(2d_array, ast::TextureDimension::k2dArray)
-DECLARE_STORAGE_TEXTURE(3d, ast::TextureDimension::k3d)
+DECLARE_STORAGE_TEXTURE(1d, type::TextureDimension::k1d)
+DECLARE_STORAGE_TEXTURE(2d, type::TextureDimension::k2d)
+DECLARE_STORAGE_TEXTURE(2d_array, type::TextureDimension::k2dArray)
+DECLARE_STORAGE_TEXTURE(3d, type::TextureDimension::k3d)
#undef DECLARE_STORAGE_TEXTURE
bool match_texture_external(MatchState&, const type::Type* ty) {
diff --git a/src/tint/resolver/intrinsic_table_test.cc b/src/tint/resolver/intrinsic_table_test.cc
index bb17bae..fbd00af 100644
--- a/src/tint/resolver/intrinsic_table_test.cc
+++ b/src/tint/resolver/intrinsic_table_test.cc
@@ -30,6 +30,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::resolver {
namespace {
@@ -97,7 +98,7 @@
auto* f32 = create<type::F32>();
auto* i32 = create<type::I32>();
auto* vec4_f32 = create<type::Vector>(f32, 4u);
- auto* tex = create<type::SampledTexture>(ast::TextureDimension::k1d, f32);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k1d, f32);
auto result = table->Lookup(BuiltinType::kTextureLoad, utils::Vector{tex, i32, i32},
sem::EvaluationStage::kConstant, Source{});
ASSERT_NE(result.sem, nullptr) << Diagnostics().str();
@@ -115,7 +116,7 @@
TEST_F(IntrinsicTableTest, MismatchI32) {
auto* f32 = create<type::F32>();
- auto* tex = create<type::SampledTexture>(ast::TextureDimension::k1d, f32);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k1d, f32);
auto result = table->Lookup(BuiltinType::kTextureLoad, utils::Vector{tex, f32},
sem::EvaluationStage::kConstant, Source{});
ASSERT_EQ(result.sem, nullptr);
@@ -280,7 +281,7 @@
auto* f32 = create<type::F32>();
auto* vec2_f32 = create<type::Vector>(f32, 2u);
auto* vec4_f32 = create<type::Vector>(f32, 4u);
- auto* tex = create<type::SampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k2d, f32);
auto* sampler = create<type::Sampler>(ast::SamplerKind::kSampler);
auto result = table->Lookup(BuiltinType::kTextureSample, utils::Vector{tex, sampler, vec2_f32},
sem::EvaluationStage::kConstant, Source{});
@@ -300,7 +301,7 @@
TEST_F(IntrinsicTableTest, MismatchSampler) {
auto* f32 = create<type::F32>();
auto* vec2_f32 = create<type::Vector>(f32, 2u);
- auto* tex = create<type::SampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k2d, f32);
auto result = table->Lookup(BuiltinType::kTextureSample, utils::Vector{tex, f32, vec2_f32},
sem::EvaluationStage::kConstant, Source{});
ASSERT_EQ(result.sem, nullptr);
@@ -312,7 +313,7 @@
auto* f32 = create<type::F32>();
auto* vec2_i32 = create<type::Vector>(i32, 2u);
auto* vec4_f32 = create<type::Vector>(f32, 4u);
- auto* tex = create<type::SampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* tex = create<type::SampledTexture>(type::TextureDimension::k2d, f32);
auto result = table->Lookup(BuiltinType::kTextureLoad, utils::Vector{tex, vec2_i32, i32},
sem::EvaluationStage::kConstant, Source{});
ASSERT_NE(result.sem, nullptr) << Diagnostics().str();
@@ -333,7 +334,7 @@
auto* f32 = create<type::F32>();
auto* vec2_i32 = create<type::Vector>(i32, 2u);
auto* vec4_f32 = create<type::Vector>(f32, 4u);
- auto* tex = create<type::MultisampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* tex = create<type::MultisampledTexture>(type::TextureDimension::k2d, f32);
auto result = table->Lookup(BuiltinType::kTextureLoad, utils::Vector{tex, vec2_i32, i32},
sem::EvaluationStage::kConstant, Source{});
ASSERT_NE(result.sem, nullptr) << Diagnostics().str();
@@ -353,7 +354,7 @@
auto* f32 = create<type::F32>();
auto* i32 = create<type::I32>();
auto* vec2_i32 = create<type::Vector>(i32, 2u);
- auto* tex = create<type::DepthTexture>(ast::TextureDimension::k2d);
+ auto* tex = create<type::DepthTexture>(type::TextureDimension::k2d);
auto result = table->Lookup(BuiltinType::kTextureLoad, utils::Vector{tex, vec2_i32, i32},
sem::EvaluationStage::kConstant, Source{});
ASSERT_NE(result.sem, nullptr) << Diagnostics().str();
@@ -373,7 +374,7 @@
auto* f32 = create<type::F32>();
auto* i32 = create<type::I32>();
auto* vec2_i32 = create<type::Vector>(i32, 2u);
- auto* tex = create<type::DepthMultisampledTexture>(ast::TextureDimension::k2d);
+ auto* tex = create<type::DepthMultisampledTexture>(type::TextureDimension::k2d);
auto result = table->Lookup(BuiltinType::kTextureLoad, utils::Vector{tex, vec2_i32, i32},
sem::EvaluationStage::kConstant, Source{});
ASSERT_NE(result.sem, nullptr) << Diagnostics().str();
@@ -415,7 +416,7 @@
auto* vec4_f32 = create<type::Vector>(f32, 4u);
auto* subtype = type::StorageTexture::SubtypeFor(ast::TexelFormat::kR32Float, Types());
auto* tex = create<type::StorageTexture>(
- ast::TextureDimension::k2d, ast::TexelFormat::kR32Float, ast::Access::kWrite, subtype);
+ type::TextureDimension::k2d, ast::TexelFormat::kR32Float, ast::Access::kWrite, subtype);
auto result = table->Lookup(BuiltinType::kTextureStore, utils::Vector{tex, vec2_i32, vec4_f32},
sem::EvaluationStage::kConstant, Source{});
@@ -629,7 +630,7 @@
}
TEST_F(IntrinsicTableTest, OverloadOrderByMatchingParameter) {
- auto* tex = create<type::DepthTexture>(ast::TextureDimension::k2d);
+ auto* tex = create<type::DepthTexture>(type::TextureDimension::k2d);
auto* bool_ = create<type::Bool>();
table->Lookup(BuiltinType::kTextureDimensions, utils::Vector{tex, bool_},
sem::EvaluationStage::kConstant, Source{});
diff --git a/src/tint/resolver/load_test.cc b/src/tint/resolver/load_test.cc
index fea60ff5..a97b011 100644
--- a/src/tint/resolver/load_test.cc
+++ b/src/tint/resolver/load_test.cc
@@ -12,14 +12,13 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+#include "src/tint/sem/load.h"
+#include "gmock/gmock.h"
#include "src/tint/resolver/resolver.h"
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/sem/test_helper.h"
-
-#include "src/tint/sem/load.h"
#include "src/tint/type/reference.h"
-
-#include "gmock/gmock.h"
+#include "src/tint/type/texture_dimension.h"
using namespace tint::number_suffixes; // NOLINT
@@ -220,12 +219,12 @@
// return textureSampleLevel(tp, sp, vec2(), 0);
// }
// f(t, s);
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
utils::Vector{Group(0_a), Binding(0_a)});
GlobalVar("s", ty.sampler(ast::SamplerKind::kSampler), utils::Vector{Group(0_a), Binding(1_a)});
Func("f",
utils::Vector{
- Param("tp", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32())),
+ Param("tp", ty.sampled_texture(type::TextureDimension::k2d, ty.f32())),
Param("sp", ty.sampler(ast::SamplerKind::kSampler)),
},
ty.vec4<f32>(),
diff --git a/src/tint/resolver/ptr_ref_validation_test.cc b/src/tint/resolver/ptr_ref_validation_test.cc
index efd77a6..a79a546 100644
--- a/src/tint/resolver/ptr_ref_validation_test.cc
+++ b/src/tint/resolver/ptr_ref_validation_test.cc
@@ -12,12 +12,12 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+#include "gmock/gmock.h"
#include "src/tint/ast/bitcast_expression.h"
#include "src/tint/resolver/resolver.h"
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/type/reference.h"
-
-#include "gmock/gmock.h"
+#include "src/tint/type/texture_dimension.h"
using namespace tint::number_suffixes; // NOLINT
@@ -54,7 +54,7 @@
TEST_F(ResolverPtrRefValidationTest, AddressOfHandle) {
// @group(0) @binding(0) var t: texture_3d<f32>;
// &t
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k3d, ty.f32()), Group(0_a),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k3d, ty.f32()), Group(0_a),
Binding(0_a));
auto* expr = AddressOf(Expr(Source{{12, 34}}, "t"));
WrapInFunction(expr);
@@ -94,7 +94,7 @@
TEST_F(ResolverPtrRefValidationTest, IndirectOfAddressOfHandle) {
// @group(0) @binding(0) var t: texture_3d<f32>;
// *&t
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k3d, ty.f32()), Group(0_a),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k3d, ty.f32()), Group(0_a),
Binding(0_a));
auto* expr = Deref(AddressOf(Expr(Source{{12, 34}}, "t")));
WrapInFunction(expr);
diff --git a/src/tint/resolver/resolver_test.cc b/src/tint/resolver/resolver_test.cc
index e5538c5..a5a9148 100644
--- a/src/tint/resolver/resolver_test.cc
+++ b/src/tint/resolver/resolver_test.cc
@@ -44,6 +44,7 @@
#include "src/tint/sem/variable.h"
#include "src/tint/type/reference.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
using ::testing::ElementsAre;
using ::testing::HasSubstr;
@@ -1886,7 +1887,7 @@
}
TEST_F(ResolverTest, AddressSpace_SetForTexture) {
- auto* t = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* t = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
auto* var = GlobalVar("var", t, Binding(0_a), Group(0_a));
EXPECT_TRUE(r()->Resolve()) << r()->error();
@@ -2123,7 +2124,7 @@
}
TEST_F(ResolverTest, TextureSampler_TextureSample) {
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(1_a),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(1_a),
Binding(1_a));
GlobalVar("s", ty.sampler(ast::SamplerKind::kSampler), Group(1_a), Binding(2_a));
@@ -2141,7 +2142,7 @@
}
TEST_F(ResolverTest, TextureSampler_TextureSampleInFunction) {
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(1_a),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(1_a),
Binding(1_a));
GlobalVar("s", ty.sampler(ast::SamplerKind::kSampler), Group(1_a), Binding(2_a));
@@ -2167,7 +2168,7 @@
}
TEST_F(ResolverTest, TextureSampler_TextureSampleFunctionDiamondSameVariables) {
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(1_a),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(1_a),
Binding(1_a));
GlobalVar("s", ty.sampler(ast::SamplerKind::kSampler), Group(1_a), Binding(2_a));
@@ -2202,9 +2203,9 @@
}
TEST_F(ResolverTest, TextureSampler_TextureSampleFunctionDiamondDifferentVariables) {
- GlobalVar("t1", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(1_a),
+ GlobalVar("t1", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(1_a),
Binding(1_a));
- GlobalVar("t2", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(1_a),
+ GlobalVar("t2", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(1_a),
Binding(2_a));
GlobalVar("s", ty.sampler(ast::SamplerKind::kSampler), Group(1_a), Binding(3_a));
@@ -2241,7 +2242,7 @@
}
TEST_F(ResolverTest, TextureSampler_TextureDimensions) {
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(1_a),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(1_a),
Binding(2_a));
auto* call = Call("textureDimensions", "t");
@@ -2270,7 +2271,7 @@
// return textureSampleLevel(*tl, *sl, c, 0.0);
// }
GlobalVar("s", ty.sampler(ast::SamplerKind::kSampler), Group(0_a), Binding(0_a));
- GlobalVar("t", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(0_a),
+ GlobalVar("t", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(0_a),
Binding(1_a));
GlobalVar("c", ty.vec2<f32>(), ast::AddressSpace::kUniform, Group(0_a), Binding(2_a));
@@ -2289,7 +2290,7 @@
utils::Vector{
Param("sl", ty.pointer(ty.sampler(ast::SamplerKind::kSampler),
ast::AddressSpace::kFunction)),
- Param("tl", ty.pointer(ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ Param("tl", ty.pointer(ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
ast::AddressSpace::kFunction)),
},
ty.vec4<f32>(),
diff --git a/src/tint/resolver/root_identifier_test.cc b/src/tint/resolver/root_identifier_test.cc
index 934feae..adf9239 100644
--- a/src/tint/resolver/root_identifier_test.cc
+++ b/src/tint/resolver/root_identifier_test.cc
@@ -17,6 +17,7 @@
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/sem/index_accessor_expression.h"
#include "src/tint/sem/member_accessor_expression.h"
+#include "src/tint/type/texture_dimension.h"
using namespace tint::number_suffixes; // NOLINT
@@ -70,7 +71,7 @@
}
TEST_F(ResolverRootIdentifierTest, GlobalTextureVar) {
- auto* a = GlobalVar("a", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ auto* a = GlobalVar("a", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
ast::AddressSpace::kNone, Group(0_a), Binding(0_a));
auto* expr = Expr(a);
WrapInFunction(Call("textureDimensions", expr));
diff --git a/src/tint/resolver/side_effects_test.cc b/src/tint/resolver/side_effects_test.cc
index 8265586..e367714 100644
--- a/src/tint/resolver/side_effects_test.cc
+++ b/src/tint/resolver/side_effects_test.cc
@@ -19,6 +19,7 @@
#include "src/tint/sem/expression.h"
#include "src/tint/sem/index_accessor_expression.h"
#include "src/tint/sem/member_accessor_expression.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/vector.h"
using namespace tint::number_suffixes; // NOLINT
@@ -180,16 +181,16 @@
GlobalVar("a", ty.atomic(ty.i32()), ast::AddressSpace::kStorage, ast::Access::kReadWrite,
Group(0_a), Binding(AInt(next_binding++)));
if (c.pipeline_stage != ast::PipelineStage::kCompute) {
- GlobalVar("t2d", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(0_a),
+ GlobalVar("t2d", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()), Group(0_a),
Binding(AInt(next_binding++)));
- GlobalVar("tdepth2d", ty.depth_texture(ast::TextureDimension::k2d), Group(0_a),
+ GlobalVar("tdepth2d", ty.depth_texture(type::TextureDimension::k2d), Group(0_a),
Binding(AInt(next_binding++)));
- GlobalVar("t2d_arr", ty.sampled_texture(ast::TextureDimension::k2dArray, ty.f32()),
+ GlobalVar("t2d_arr", ty.sampled_texture(type::TextureDimension::k2dArray, ty.f32()),
Group(0_a), Binding(AInt(next_binding++)));
- GlobalVar("t2d_multi", ty.multisampled_texture(ast::TextureDimension::k2d, ty.f32()),
+ GlobalVar("t2d_multi", ty.multisampled_texture(type::TextureDimension::k2d, ty.f32()),
Group(0_a), Binding(AInt(next_binding++)));
GlobalVar("tstorage2d",
- ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Float,
+ ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Float,
ast::Access::kWrite),
Group(0_a), Binding(AInt(next_binding++)));
GlobalVar("s2d", ty.sampler(ast::SamplerKind::kSampler), Group(0_a),
diff --git a/src/tint/resolver/type_validation_test.cc b/src/tint/resolver/type_validation_test.cc
index ebd40b0..bfc9d23 100644
--- a/src/tint/resolver/type_validation_test.cc
+++ b/src/tint/resolver/type_validation_test.cc
@@ -19,6 +19,7 @@
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "gmock/gmock.h"
@@ -856,7 +857,7 @@
}
TEST_F(ResolverTypeValidationTest, ArrayOfNonStorableType) {
- auto* tex_ty = ty.sampled_texture(Source{{12, 34}}, ast::TextureDimension::k2d, ty.f32());
+ auto* tex_ty = ty.sampled_texture(Source{{12, 34}}, type::TextureDimension::k2d, ty.f32());
GlobalVar("arr", ty.array(tex_ty, 4_i), ast::AddressSpace::kPrivate);
EXPECT_FALSE(r()->Resolve());
@@ -964,7 +965,7 @@
namespace SampledTextureTests {
struct DimensionParams {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
bool is_valid;
};
@@ -979,12 +980,12 @@
INSTANTIATE_TEST_SUITE_P(ResolverTypeValidationTest,
SampledTextureDimensionTest,
testing::Values( //
- DimensionParams{ast::TextureDimension::k1d, true},
- DimensionParams{ast::TextureDimension::k2d, true},
- DimensionParams{ast::TextureDimension::k2dArray, true},
- DimensionParams{ast::TextureDimension::k3d, true},
- DimensionParams{ast::TextureDimension::kCube, true},
- DimensionParams{ast::TextureDimension::kCubeArray, true}));
+ DimensionParams{type::TextureDimension::k1d, true},
+ DimensionParams{type::TextureDimension::k2d, true},
+ DimensionParams{type::TextureDimension::k2dArray, true},
+ DimensionParams{type::TextureDimension::k3d, true},
+ DimensionParams{type::TextureDimension::kCube, true},
+ DimensionParams{type::TextureDimension::kCubeArray, true}));
using MultisampledTextureDimensionTest = ResolverTestWithParam<DimensionParams>;
TEST_P(MultisampledTextureDimensionTest, All) {
@@ -1002,12 +1003,12 @@
INSTANTIATE_TEST_SUITE_P(ResolverTypeValidationTest,
MultisampledTextureDimensionTest,
testing::Values( //
- DimensionParams{ast::TextureDimension::k1d, false},
- DimensionParams{ast::TextureDimension::k2d, true},
- DimensionParams{ast::TextureDimension::k2dArray, false},
- DimensionParams{ast::TextureDimension::k3d, false},
- DimensionParams{ast::TextureDimension::kCube, false},
- DimensionParams{ast::TextureDimension::kCubeArray, false}));
+ DimensionParams{type::TextureDimension::k1d, false},
+ DimensionParams{type::TextureDimension::k2d, true},
+ DimensionParams{type::TextureDimension::k2dArray, false},
+ DimensionParams{type::TextureDimension::k3d, false},
+ DimensionParams{type::TextureDimension::kCube, false},
+ DimensionParams{type::TextureDimension::kCubeArray, false}));
struct TypeParams {
builder::ast_type_func_ptr type_func;
@@ -1047,7 +1048,7 @@
Enable(ast::Extension::kF16);
GlobalVar(
"a",
- ty.sampled_texture(Source{{12, 34}}, ast::TextureDimension::k2d, params.type_func(*this)),
+ ty.sampled_texture(Source{{12, 34}}, type::TextureDimension::k2d, params.type_func(*this)),
Group(0_a), Binding(0_a));
if (params.is_valid) {
@@ -1066,7 +1067,7 @@
auto& params = GetParam();
Enable(ast::Extension::kF16);
GlobalVar("a",
- ty.multisampled_texture(Source{{12, 34}}, ast::TextureDimension::k2d,
+ ty.multisampled_texture(Source{{12, 34}}, type::TextureDimension::k2d,
params.type_func(*this)),
Group(0_a), Binding(0_a));
@@ -1086,17 +1087,17 @@
namespace StorageTextureTests {
struct DimensionParams {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
bool is_valid;
};
static constexpr DimensionParams Dimension_cases[] = {
- DimensionParams{ast::TextureDimension::k1d, true},
- DimensionParams{ast::TextureDimension::k2d, true},
- DimensionParams{ast::TextureDimension::k2dArray, true},
- DimensionParams{ast::TextureDimension::k3d, true},
- DimensionParams{ast::TextureDimension::kCube, false},
- DimensionParams{ast::TextureDimension::kCubeArray, false}};
+ DimensionParams{type::TextureDimension::k1d, true},
+ DimensionParams{type::TextureDimension::k2d, true},
+ DimensionParams{type::TextureDimension::k2dArray, true},
+ DimensionParams{type::TextureDimension::k3d, true},
+ DimensionParams{type::TextureDimension::kCube, false},
+ DimensionParams{type::TextureDimension::kCubeArray, false}};
using StorageTextureDimensionTest = ResolverTestWithParam<DimensionParams>;
TEST_P(StorageTextureDimensionTest, All) {
@@ -1156,18 +1157,20 @@
// @group(0) @binding(3)
// var d : texture_storage_3d<*, write>;
- auto* st_a = ty.storage_texture(Source{{12, 34}}, ast::TextureDimension::k1d, params.format,
+ auto* st_a = ty.storage_texture(Source{{12, 34}}, type::TextureDimension::k1d, params.format,
ast::Access::kWrite);
GlobalVar("a", st_a, Group(0_a), Binding(0_a));
- auto* st_b = ty.storage_texture(ast::TextureDimension::k2d, params.format, ast::Access::kWrite);
+ auto* st_b =
+ ty.storage_texture(type::TextureDimension::k2d, params.format, ast::Access::kWrite);
GlobalVar("b", st_b, Group(0_a), Binding(1_a));
auto* st_c =
- ty.storage_texture(ast::TextureDimension::k2dArray, params.format, ast::Access::kWrite);
+ ty.storage_texture(type::TextureDimension::k2dArray, params.format, ast::Access::kWrite);
GlobalVar("c", st_c, Group(0_a), Binding(2_a));
- auto* st_d = ty.storage_texture(ast::TextureDimension::k3d, params.format, ast::Access::kWrite);
+ auto* st_d =
+ ty.storage_texture(type::TextureDimension::k3d, params.format, ast::Access::kWrite);
GlobalVar("d", st_d, Group(0_a), Binding(3_a));
if (params.is_valid) {
@@ -1189,7 +1192,7 @@
// @group(0) @binding(0)
// var a : texture_storage_1d<ru32int>;
- auto* st = ty.storage_texture(Source{{12, 34}}, ast::TextureDimension::k1d,
+ auto* st = ty.storage_texture(Source{{12, 34}}, type::TextureDimension::k1d,
ast::TexelFormat::kR32Uint, ast::Access::kUndefined);
GlobalVar("a", st, Group(0_a), Binding(0_a));
@@ -1202,7 +1205,7 @@
// @group(0) @binding(0)
// var a : texture_storage_1d<ru32int, read_write>;
- auto* st = ty.storage_texture(Source{{12, 34}}, ast::TextureDimension::k1d,
+ auto* st = ty.storage_texture(Source{{12, 34}}, type::TextureDimension::k1d,
ast::TexelFormat::kR32Uint, ast::Access::kReadWrite);
GlobalVar("a", st, Group(0_a), Binding(0_a));
@@ -1216,7 +1219,7 @@
// @group(0) @binding(0)
// var a : texture_storage_1d<ru32int, read>;
- auto* st = ty.storage_texture(Source{{12, 34}}, ast::TextureDimension::k1d,
+ auto* st = ty.storage_texture(Source{{12, 34}}, type::TextureDimension::k1d,
ast::TexelFormat::kR32Uint, ast::Access::kRead);
GlobalVar("a", st, Group(0_a), Binding(0_a));
@@ -1230,7 +1233,7 @@
// @group(0) @binding(0)
// var a : texture_storage_1d<ru32int, write>;
- auto* st = ty.storage_texture(ast::TextureDimension::k1d, ast::TexelFormat::kR32Uint,
+ auto* st = ty.storage_texture(type::TextureDimension::k1d, ast::TexelFormat::kR32Uint,
ast::Access::kWrite);
GlobalVar("a", st, Group(0_a), Binding(0_a));
diff --git a/src/tint/resolver/validation_test.cc b/src/tint/resolver/validation_test.cc
index b476602..7f41be6 100644
--- a/src/tint/resolver/validation_test.cc
+++ b/src/tint/resolver/validation_test.cc
@@ -37,6 +37,7 @@
#include "src/tint/sem/statement.h"
#include "src/tint/sem/variable.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
using ::testing::ElementsAre;
using ::testing::HasSubstr;
@@ -345,7 +346,7 @@
}
TEST_F(ResolverValidationTest, AddressSpace_TextureExplicitAddressSpace) {
- auto* t = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* t = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
GlobalVar(Source{{12, 34}}, "var", t, ast::AddressSpace::kHandle, Binding(0_a), Group(0_a));
EXPECT_FALSE(r()->Resolve()) << r()->error();
diff --git a/src/tint/resolver/validator.cc b/src/tint/resolver/validator.cc
index c25129a..556350e 100644
--- a/src/tint/resolver/validator.cc
+++ b/src/tint/resolver/validator.cc
@@ -73,6 +73,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/sampler.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/defer.h"
#include "src/tint/utils/map.h"
#include "src/tint/utils/math.h"
@@ -84,12 +85,12 @@
namespace tint::resolver {
namespace {
-bool IsValidStorageTextureDimension(ast::TextureDimension dim) {
+bool IsValidStorageTextureDimension(type::TextureDimension dim) {
switch (dim) {
- case ast::TextureDimension::k1d:
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k1d:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
+ case type::TextureDimension::k3d:
return true;
default:
return false;
@@ -331,7 +332,7 @@
bool Validator::MultisampledTexture(const type::MultisampledTexture* t,
const Source& source) const {
- if (t->dim() != ast::TextureDimension::k2d) {
+ if (t->dim() != type::TextureDimension::k2d) {
AddError("only 2d multisampled textures are supported", source);
return false;
}
diff --git a/src/tint/resolver/variable_test.cc b/src/tint/resolver/variable_test.cc
index 552ad08..744fb99 100644
--- a/src/tint/resolver/variable_test.cc
+++ b/src/tint/resolver/variable_test.cc
@@ -12,11 +12,11 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+#include "gmock/gmock.h"
#include "src/tint/resolver/resolver.h"
#include "src/tint/resolver/resolver_test_helper.h"
#include "src/tint/type/reference.h"
-
-#include "gmock/gmock.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::resolver {
namespace {
@@ -1044,7 +1044,7 @@
auto* storage =
GlobalVar("sb", ty.Of(buf), ast::AddressSpace::kStorage, Binding(1_a), Group(0_a));
auto* handle =
- GlobalVar("h", ty.depth_texture(ast::TextureDimension::k2d), Binding(2_a), Group(0_a));
+ GlobalVar("h", ty.depth_texture(type::TextureDimension::k2d), Binding(2_a), Group(0_a));
ASSERT_TRUE(r()->Resolve()) << r()->error();
diff --git a/src/tint/resolver/variable_validation_test.cc b/src/tint/resolver/variable_validation_test.cc
index cf35e4c..c4232e2 100644
--- a/src/tint/resolver/variable_validation_test.cc
+++ b/src/tint/resolver/variable_validation_test.cc
@@ -12,10 +12,10 @@
// See the License for the specific language governing permissions and
// limitations under the License.
+#include "gmock/gmock.h"
#include "src/tint/resolver/resolver.h"
#include "src/tint/resolver/resolver_test_helper.h"
-
-#include "gmock/gmock.h"
+#include "src/tint/type/texture_dimension.h"
using namespace tint::number_suffixes; // NOLINT
@@ -123,8 +123,8 @@
TEST_F(ResolverVariableValidationTest, LetTypeNotConstructible) {
// @group(0) @binding(0) var t1 : texture_2d<f32>;
// let t2 : t1;
- auto* t1 = GlobalVar("t1", ty.sampled_texture(ast::TextureDimension::k2d, ty.f32()), Group(0_a),
- Binding(0_a));
+ auto* t1 = GlobalVar("t1", ty.sampled_texture(type::TextureDimension::k2d, ty.f32()),
+ Group(0_a), Binding(0_a));
auto* t2 = Let(Source{{56, 78}}, "t2", Expr(t1));
WrapInFunction(t2);
diff --git a/src/tint/transform/builtin_polyfill.cc b/src/tint/transform/builtin_polyfill.cc
index dbd6f6e..2c0f2a9 100644
--- a/src/tint/transform/builtin_polyfill.cc
+++ b/src/tint/transform/builtin_polyfill.cc
@@ -22,6 +22,7 @@
#include "src/tint/program_builder.h"
#include "src/tint/sem/builtin.h"
#include "src/tint/sem/call.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/map.h"
using namespace tint::number_suffixes; // NOLINT
@@ -638,7 +639,7 @@
};
b.Func(name,
utils::Vector{
- b.Param("t", b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32())),
+ b.Param("t", b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32())),
b.Param("s", b.ty.sampler(ast::SamplerKind::kSampler)),
b.Param("coord", b.ty.vec2<f32>()),
},
diff --git a/src/tint/transform/multiplanar_external_texture.cc b/src/tint/transform/multiplanar_external_texture.cc
index d81d186..7a2200e 100644
--- a/src/tint/transform/multiplanar_external_texture.cc
+++ b/src/tint/transform/multiplanar_external_texture.cc
@@ -22,6 +22,7 @@
#include "src/tint/sem/call.h"
#include "src/tint/sem/function.h"
#include "src/tint/sem/variable.h"
+#include "src/tint/type/texture_dimension.h"
TINT_INSTANTIATE_TYPEINFO(tint::transform::MultiplanarExternalTexture);
TINT_INSTANTIATE_TYPEINFO(tint::transform::MultiplanarExternalTexture::NewBindingPoints);
@@ -140,7 +141,7 @@
auto& syms = new_binding_symbols[sem_var];
syms.plane_0 = ctx.Clone(global->symbol);
syms.plane_1 = b.Symbols().New("ext_tex_plane_1");
- b.GlobalVar(syms.plane_1, b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32()),
+ b.GlobalVar(syms.plane_1, b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32()),
b.Group(AInt(bps.plane_1.group)), b.Binding(AInt(bps.plane_1.binding)));
syms.params = b.Symbols().New("ext_tex_params");
b.GlobalVar(syms.params, b.ty.type_name("ExternalTextureParams"),
@@ -152,7 +153,7 @@
const ast::Expression* cloned_initializer = ctx.Clone(global->initializer);
auto* replacement =
- b.Var(syms.plane_0, b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32()),
+ b.Var(syms.plane_0, b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32()),
cloned_initializer, cloned_attributes);
ctx.Replace(global, replacement);
}
@@ -178,7 +179,7 @@
syms.plane_1 = b.Symbols().New("ext_tex_plane_1");
syms.params = b.Symbols().New("ext_tex_params");
auto tex2d_f32 = [&] {
- return b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32());
+ return b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32());
};
ctx.Replace(param, b.Param(syms.plane_0, tex2d_f32()));
ctx.InsertAfter(fn->params, param, b.Param(syms.plane_1, tex2d_f32()));
@@ -419,17 +420,18 @@
texture_sample_external_sym = b.Symbols().New("textureSampleExternal");
// Emit the textureSampleExternal function.
- b.Func(
- texture_sample_external_sym,
- utils::Vector{
- b.Param("plane0", b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32())),
- b.Param("plane1", b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32())),
- b.Param("smp", b.ty.sampler(ast::SamplerKind::kSampler)),
- b.Param("coord", b.ty.vec2(b.ty.f32())),
- b.Param("params", b.ty.type_name(params_struct_sym)),
- },
- b.ty.vec4(b.ty.f32()),
- buildTextureBuiltinBody(sem::BuiltinType::kTextureSampleBaseClampToEdge));
+ b.Func(texture_sample_external_sym,
+ utils::Vector{
+ b.Param("plane0",
+ b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32())),
+ b.Param("plane1",
+ b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32())),
+ b.Param("smp", b.ty.sampler(ast::SamplerKind::kSampler)),
+ b.Param("coord", b.ty.vec2(b.ty.f32())),
+ b.Param("params", b.ty.type_name(params_struct_sym)),
+ },
+ b.ty.vec4(b.ty.f32()),
+ buildTextureBuiltinBody(sem::BuiltinType::kTextureSampleBaseClampToEdge));
}
const ast::IdentifierExpression* exp = b.Expr(texture_sample_external_sym);
@@ -467,16 +469,17 @@
auto name = b.Symbols().New("textureLoadExternal");
// Emit the textureLoadExternal() function.
- b.Func(
- name,
- utils::Vector{
- b.Param("plane0", b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32())),
- b.Param("plane1", b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32())),
- b.Param("coord", CreateASTTypeFor(ctx, coord_ty)),
- b.Param("params", b.ty.type_name(params_struct_sym)),
- },
- b.ty.vec4(b.ty.f32()), //
- buildTextureBuiltinBody(sem::BuiltinType::kTextureLoad));
+ b.Func(name,
+ utils::Vector{
+ b.Param("plane0",
+ b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32())),
+ b.Param("plane1",
+ b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32())),
+ b.Param("coord", CreateASTTypeFor(ctx, coord_ty)),
+ b.Param("params", b.ty.type_name(params_struct_sym)),
+ },
+ b.ty.vec4(b.ty.f32()), //
+ buildTextureBuiltinBody(sem::BuiltinType::kTextureLoad));
return name;
});
diff --git a/src/tint/transform/texture_1d_to_2d.cc b/src/tint/transform/texture_1d_to_2d.cc
index 85cd512..4de6188 100644
--- a/src/tint/transform/texture_1d_to_2d.cc
+++ b/src/tint/transform/texture_1d_to_2d.cc
@@ -19,6 +19,7 @@
#include "src/tint/program_builder.h"
#include "src/tint/sem/function.h"
#include "src/tint/sem/statement.h"
+#include "src/tint/type/texture_dimension.h"
TINT_INSTANTIATE_TYPEINFO(tint::transform::Texture1DTo2D);
@@ -36,7 +37,7 @@
auto texture = signature.Parameter(sem::ParameterUsage::kTexture);
if (texture) {
auto* tex = texture->Type()->As<type::Texture>();
- if (tex->dim() == ast::TextureDimension::k1d) {
+ if (tex->dim() == type::TextureDimension::k1d) {
return true;
}
}
@@ -47,10 +48,10 @@
if (Switch(
program->Sem().Get(var->type),
[&](const type::SampledTexture* tex) {
- return tex->dim() == ast::TextureDimension::k1d;
+ return tex->dim() == type::TextureDimension::k1d;
},
[&](const type::StorageTexture* storage_tex) {
- return storage_tex->dim() == ast::TextureDimension::k1d;
+ return storage_tex->dim() == type::TextureDimension::k1d;
})) {
return true;
}
@@ -94,18 +95,18 @@
const ast::Variable* r = Switch(
sem.Get(v->type),
[&](const type::SampledTexture* tex) -> const ast::Variable* {
- if (tex->dim() == ast::TextureDimension::k1d) {
+ if (tex->dim() == type::TextureDimension::k1d) {
auto* type = ctx.dst->create<ast::SampledTexture>(
- ast::TextureDimension::k2d, CreateASTTypeFor(ctx, tex->type()));
+ type::TextureDimension::k2d, CreateASTTypeFor(ctx, tex->type()));
return create_var(v, type);
} else {
return nullptr;
}
},
[&](const type::StorageTexture* storage_tex) -> const ast::Variable* {
- if (storage_tex->dim() == ast::TextureDimension::k1d) {
+ if (storage_tex->dim() == type::TextureDimension::k1d) {
auto* type = ctx.dst->create<ast::StorageTexture>(
- ast::TextureDimension::k2d, storage_tex->texel_format(),
+ type::TextureDimension::k2d, storage_tex->texel_format(),
CreateASTTypeFor(ctx, storage_tex->type()), storage_tex->access());
return create_var(v, type);
} else {
@@ -131,7 +132,7 @@
return nullptr;
}
auto* tex = texture->Type()->As<type::Texture>();
- if (tex->dim() != ast::TextureDimension::k1d) {
+ if (tex->dim() != type::TextureDimension::k1d) {
return nullptr;
}
diff --git a/src/tint/type/array.cc b/src/tint/type/array.cc
index 6e1d297..dedf986 100644
--- a/src/tint/type/array.cc
+++ b/src/tint/type/array.cc
@@ -16,10 +16,10 @@
#include <string>
-#include "src/tint/ast/variable.h"
#include "src/tint/debug.h"
#include "src/tint/symbol_table.h"
#include "src/tint/type/manager.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hash.h"
TINT_INSTANTIATE_TYPEINFO(tint::type::Array);
diff --git a/src/tint/type/depth_multisampled_texture.cc b/src/tint/type/depth_multisampled_texture.cc
index 7e80eb1..43d30a8 100644
--- a/src/tint/type/depth_multisampled_texture.cc
+++ b/src/tint/type/depth_multisampled_texture.cc
@@ -15,6 +15,7 @@
#include "src/tint/type/depth_multisampled_texture.h"
#include "src/tint/program_builder.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hash.h"
TINT_INSTANTIATE_TYPEINFO(tint::type::DepthMultisampledTexture);
@@ -22,13 +23,13 @@
namespace tint::type {
namespace {
-bool IsValidDepthDimension(ast::TextureDimension dim) {
- return dim == ast::TextureDimension::k2d;
+bool IsValidDepthDimension(TextureDimension dim) {
+ return dim == TextureDimension::k2d;
}
} // namespace
-DepthMultisampledTexture::DepthMultisampledTexture(ast::TextureDimension dim)
+DepthMultisampledTexture::DepthMultisampledTexture(TextureDimension dim)
: Base(utils::Hash(TypeInfo::Of<DepthMultisampledTexture>().full_hashcode, dim), dim) {
TINT_ASSERT(Type, IsValidDepthDimension(dim));
}
diff --git a/src/tint/type/depth_multisampled_texture.h b/src/tint/type/depth_multisampled_texture.h
index d91b463..31efaeb 100644
--- a/src/tint/type/depth_multisampled_texture.h
+++ b/src/tint/type/depth_multisampled_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/type/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
@@ -26,7 +27,7 @@
public:
/// Constructor
/// @param dim the dimensionality of the texture
- explicit DepthMultisampledTexture(ast::TextureDimension dim);
+ explicit DepthMultisampledTexture(TextureDimension dim);
/// Destructor
~DepthMultisampledTexture() override;
diff --git a/src/tint/type/depth_multisampled_texture_test.cc b/src/tint/type/depth_multisampled_texture_test.cc
index fa94d93..c0830c6 100644
--- a/src/tint/type/depth_multisampled_texture_test.cc
+++ b/src/tint/type/depth_multisampled_texture_test.cc
@@ -18,6 +18,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
namespace {
@@ -25,22 +26,22 @@
using DepthMultisampledTextureTest = TestHelper;
TEST_F(DepthMultisampledTextureTest, Creation) {
- auto* a = create<DepthMultisampledTexture>(ast::TextureDimension::k2d);
- auto* b = create<DepthMultisampledTexture>(ast::TextureDimension::k2d);
+ auto* a = create<DepthMultisampledTexture>(TextureDimension::k2d);
+ auto* b = create<DepthMultisampledTexture>(TextureDimension::k2d);
EXPECT_EQ(a, b);
}
TEST_F(DepthMultisampledTextureTest, Hash) {
- auto* a = create<DepthMultisampledTexture>(ast::TextureDimension::k2d);
- auto* b = create<DepthMultisampledTexture>(ast::TextureDimension::k2d);
+ auto* a = create<DepthMultisampledTexture>(TextureDimension::k2d);
+ auto* b = create<DepthMultisampledTexture>(TextureDimension::k2d);
EXPECT_EQ(a->unique_hash, b->unique_hash);
}
TEST_F(DepthMultisampledTextureTest, Equals) {
- auto* a = create<DepthMultisampledTexture>(ast::TextureDimension::k2d);
- auto* b = create<DepthMultisampledTexture>(ast::TextureDimension::k2d);
+ auto* a = create<DepthMultisampledTexture>(TextureDimension::k2d);
+ auto* b = create<DepthMultisampledTexture>(TextureDimension::k2d);
EXPECT_TRUE(a->Equals(*a));
EXPECT_TRUE(a->Equals(*b));
@@ -48,23 +49,23 @@
}
TEST_F(DepthMultisampledTextureTest, Dim) {
- DepthMultisampledTexture d(ast::TextureDimension::k2d);
- EXPECT_EQ(d.dim(), ast::TextureDimension::k2d);
+ DepthMultisampledTexture d(TextureDimension::k2d);
+ EXPECT_EQ(d.dim(), TextureDimension::k2d);
}
TEST_F(DepthMultisampledTextureTest, FriendlyName) {
- DepthMultisampledTexture d(ast::TextureDimension::k2d);
+ DepthMultisampledTexture d(TextureDimension::k2d);
EXPECT_EQ(d.FriendlyName(Symbols()), "texture_depth_multisampled_2d");
}
TEST_F(DepthMultisampledTextureTest, Clone) {
- auto* a = create<DepthMultisampledTexture>(ast::TextureDimension::k2d);
+ auto* a = create<DepthMultisampledTexture>(TextureDimension::k2d);
type::Manager mgr;
type::CloneContext ctx{{nullptr}, {nullptr, &mgr}};
auto* dt = a->Clone(ctx);
- EXPECT_EQ(dt->dim(), ast::TextureDimension::k2d);
+ EXPECT_EQ(dt->dim(), TextureDimension::k2d);
}
} // namespace
diff --git a/src/tint/type/depth_texture.cc b/src/tint/type/depth_texture.cc
index 2295b39..214b407 100644
--- a/src/tint/type/depth_texture.cc
+++ b/src/tint/type/depth_texture.cc
@@ -15,6 +15,7 @@
#include "src/tint/type/depth_texture.h"
#include "src/tint/program_builder.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hash.h"
TINT_INSTANTIATE_TYPEINFO(tint::type::DepthTexture);
@@ -22,14 +23,14 @@
namespace tint::type {
namespace {
-bool IsValidDepthDimension(ast::TextureDimension dim) {
- return dim == ast::TextureDimension::k2d || dim == ast::TextureDimension::k2dArray ||
- dim == ast::TextureDimension::kCube || dim == ast::TextureDimension::kCubeArray;
+bool IsValidDepthDimension(TextureDimension dim) {
+ return dim == TextureDimension::k2d || dim == TextureDimension::k2dArray ||
+ dim == TextureDimension::kCube || dim == TextureDimension::kCubeArray;
}
} // namespace
-DepthTexture::DepthTexture(ast::TextureDimension dim)
+DepthTexture::DepthTexture(TextureDimension dim)
: Base(utils::Hash(TypeInfo::Of<DepthTexture>().full_hashcode, dim), dim) {
TINT_ASSERT(Type, IsValidDepthDimension(dim));
}
diff --git a/src/tint/type/depth_texture.h b/src/tint/type/depth_texture.h
index 21cd780..70a0b73 100644
--- a/src/tint/type/depth_texture.h
+++ b/src/tint/type/depth_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/type/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
@@ -26,7 +27,7 @@
public:
/// Constructor
/// @param dim the dimensionality of the texture
- explicit DepthTexture(ast::TextureDimension dim);
+ explicit DepthTexture(TextureDimension dim);
/// Destructor
~DepthTexture() override;
diff --git a/src/tint/type/depth_texture_test.cc b/src/tint/type/depth_texture_test.cc
index 18dda3d..4ff970a 100644
--- a/src/tint/type/depth_texture_test.cc
+++ b/src/tint/type/depth_texture_test.cc
@@ -18,6 +18,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
namespace {
@@ -25,25 +26,25 @@
using DepthTextureTest = TestHelper;
TEST_F(DepthTextureTest, Creation) {
- auto* a = create<DepthTexture>(ast::TextureDimension::k2d);
- auto* b = create<DepthTexture>(ast::TextureDimension::k2d);
- auto* c = create<DepthTexture>(ast::TextureDimension::k2dArray);
+ auto* a = create<DepthTexture>(TextureDimension::k2d);
+ auto* b = create<DepthTexture>(TextureDimension::k2d);
+ auto* c = create<DepthTexture>(TextureDimension::k2dArray);
EXPECT_EQ(a, b);
EXPECT_NE(a, c);
}
TEST_F(DepthTextureTest, Hash) {
- auto* a = create<DepthTexture>(ast::TextureDimension::k2d);
- auto* b = create<DepthTexture>(ast::TextureDimension::k2d);
+ auto* a = create<DepthTexture>(TextureDimension::k2d);
+ auto* b = create<DepthTexture>(TextureDimension::k2d);
EXPECT_EQ(a->unique_hash, b->unique_hash);
}
TEST_F(DepthTextureTest, Equals) {
- auto* a = create<DepthTexture>(ast::TextureDimension::k2d);
- auto* b = create<DepthTexture>(ast::TextureDimension::k2d);
- auto* c = create<DepthTexture>(ast::TextureDimension::k2dArray);
+ auto* a = create<DepthTexture>(TextureDimension::k2d);
+ auto* b = create<DepthTexture>(TextureDimension::k2d);
+ auto* c = create<DepthTexture>(TextureDimension::k2dArray);
EXPECT_TRUE(a->Equals(*b));
EXPECT_FALSE(a->Equals(*c));
@@ -51,7 +52,7 @@
}
TEST_F(DepthTextureTest, IsTexture) {
- DepthTexture d(ast::TextureDimension::kCube);
+ DepthTexture d(TextureDimension::kCube);
Texture* ty = &d;
EXPECT_TRUE(ty->Is<DepthTexture>());
EXPECT_FALSE(ty->Is<ExternalTexture>());
@@ -60,23 +61,23 @@
}
TEST_F(DepthTextureTest, Dim) {
- DepthTexture d(ast::TextureDimension::kCube);
- EXPECT_EQ(d.dim(), ast::TextureDimension::kCube);
+ DepthTexture d(TextureDimension::kCube);
+ EXPECT_EQ(d.dim(), TextureDimension::kCube);
}
TEST_F(DepthTextureTest, FriendlyName) {
- DepthTexture d(ast::TextureDimension::kCube);
+ DepthTexture d(TextureDimension::kCube);
EXPECT_EQ(d.FriendlyName(Symbols()), "texture_depth_cube");
}
TEST_F(DepthTextureTest, Clone) {
- auto* a = create<DepthTexture>(ast::TextureDimension::k2d);
+ auto* a = create<DepthTexture>(TextureDimension::k2d);
type::Manager mgr;
type::CloneContext ctx{{nullptr}, {nullptr, &mgr}};
auto* dt = a->Clone(ctx);
- EXPECT_EQ(dt->dim(), ast::TextureDimension::k2d);
+ EXPECT_EQ(dt->dim(), TextureDimension::k2d);
}
} // namespace
diff --git a/src/tint/type/external_texture.cc b/src/tint/type/external_texture.cc
index 77ac5ba..bfd2edc 100644
--- a/src/tint/type/external_texture.cc
+++ b/src/tint/type/external_texture.cc
@@ -15,6 +15,7 @@
#include "src/tint/type/external_texture.h"
#include "src/tint/program_builder.h"
+#include "src/tint/type/texture_dimension.h"
TINT_INSTANTIATE_TYPEINFO(tint::type::ExternalTexture);
@@ -22,7 +23,7 @@
ExternalTexture::ExternalTexture()
: Base(static_cast<size_t>(TypeInfo::Of<ExternalTexture>().full_hashcode),
- ast::TextureDimension::k2d) {}
+ TextureDimension::k2d) {}
ExternalTexture::~ExternalTexture() = default;
diff --git a/src/tint/type/external_texture_test.cc b/src/tint/type/external_texture_test.cc
index e9ea95d..0752590 100644
--- a/src/tint/type/external_texture_test.cc
+++ b/src/tint/type/external_texture_test.cc
@@ -19,6 +19,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
namespace {
@@ -58,7 +59,7 @@
TEST_F(ExternalTextureTest, Dim) {
F32 f32;
ExternalTexture s;
- EXPECT_EQ(s.dim(), ast::TextureDimension::k2d);
+ EXPECT_EQ(s.dim(), TextureDimension::k2d);
}
TEST_F(ExternalTextureTest, FriendlyName) {
diff --git a/src/tint/type/multisampled_texture.cc b/src/tint/type/multisampled_texture.cc
index 47d3e21..801a891 100644
--- a/src/tint/type/multisampled_texture.cc
+++ b/src/tint/type/multisampled_texture.cc
@@ -15,13 +15,14 @@
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/program_builder.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hash.h"
TINT_INSTANTIATE_TYPEINFO(tint::type::MultisampledTexture);
namespace tint::type {
-MultisampledTexture::MultisampledTexture(ast::TextureDimension dim, const Type* type)
+MultisampledTexture::MultisampledTexture(TextureDimension dim, const Type* type)
: Base(utils::Hash(TypeInfo::Of<MultisampledTexture>().full_hashcode, dim, type), dim),
type_(type) {
TINT_ASSERT(Type, type_);
diff --git a/src/tint/type/multisampled_texture.h b/src/tint/type/multisampled_texture.h
index 3048590..c5e66d7 100644
--- a/src/tint/type/multisampled_texture.h
+++ b/src/tint/type/multisampled_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/type/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
@@ -27,7 +28,7 @@
/// Constructor
/// @param dim the dimensionality of the texture
/// @param type the data type of the multisampled texture
- MultisampledTexture(ast::TextureDimension dim, const Type* type);
+ MultisampledTexture(TextureDimension dim, const Type* type);
/// Destructor
~MultisampledTexture() override;
diff --git a/src/tint/type/multisampled_texture_test.cc b/src/tint/type/multisampled_texture_test.cc
index b3b671a..1a4c2b0 100644
--- a/src/tint/type/multisampled_texture_test.cc
+++ b/src/tint/type/multisampled_texture_test.cc
@@ -19,6 +19,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
namespace {
@@ -26,26 +27,26 @@
using MultisampledTextureTest = TestHelper;
TEST_F(MultisampledTextureTest, Creation) {
- auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
- auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
- auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<F32>());
- auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<I32>());
+ auto* a = create<MultisampledTexture>(TextureDimension::k2d, create<F32>());
+ auto* b = create<MultisampledTexture>(TextureDimension::k2d, create<F32>());
+ auto* c = create<MultisampledTexture>(TextureDimension::k3d, create<F32>());
+ auto* d = create<MultisampledTexture>(TextureDimension::k2d, create<I32>());
EXPECT_EQ(a, b);
EXPECT_NE(a, c);
EXPECT_NE(a, d);
}
TEST_F(MultisampledTextureTest, Hash) {
- auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
- auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+ auto* a = create<MultisampledTexture>(TextureDimension::k2d, create<F32>());
+ auto* b = create<MultisampledTexture>(TextureDimension::k2d, create<F32>());
EXPECT_EQ(a->unique_hash, b->unique_hash);
}
TEST_F(MultisampledTextureTest, Equals) {
- auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
- auto* b = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
- auto* c = create<MultisampledTexture>(ast::TextureDimension::k3d, create<F32>());
- auto* d = create<MultisampledTexture>(ast::TextureDimension::k2d, create<I32>());
+ auto* a = create<MultisampledTexture>(TextureDimension::k2d, create<F32>());
+ auto* b = create<MultisampledTexture>(TextureDimension::k2d, create<F32>());
+ auto* c = create<MultisampledTexture>(TextureDimension::k3d, create<F32>());
+ auto* d = create<MultisampledTexture>(TextureDimension::k2d, create<I32>());
EXPECT_TRUE(a->Equals(*b));
EXPECT_FALSE(a->Equals(*c));
EXPECT_FALSE(a->Equals(*d));
@@ -54,7 +55,7 @@
TEST_F(MultisampledTextureTest, IsTexture) {
F32 f32;
- MultisampledTexture s(ast::TextureDimension::kCube, &f32);
+ MultisampledTexture s(TextureDimension::kCube, &f32);
Texture* ty = &s;
EXPECT_FALSE(ty->Is<DepthTexture>());
EXPECT_FALSE(ty->Is<ExternalTexture>());
@@ -65,30 +66,30 @@
TEST_F(MultisampledTextureTest, Dim) {
F32 f32;
- MultisampledTexture s(ast::TextureDimension::k3d, &f32);
- EXPECT_EQ(s.dim(), ast::TextureDimension::k3d);
+ MultisampledTexture s(TextureDimension::k3d, &f32);
+ EXPECT_EQ(s.dim(), TextureDimension::k3d);
}
TEST_F(MultisampledTextureTest, Type) {
F32 f32;
- MultisampledTexture s(ast::TextureDimension::k3d, &f32);
+ MultisampledTexture s(TextureDimension::k3d, &f32);
EXPECT_EQ(s.type(), &f32);
}
TEST_F(MultisampledTextureTest, FriendlyName) {
F32 f32;
- MultisampledTexture s(ast::TextureDimension::k3d, &f32);
+ MultisampledTexture s(TextureDimension::k3d, &f32);
EXPECT_EQ(s.FriendlyName(Symbols()), "texture_multisampled_3d<f32>");
}
TEST_F(MultisampledTextureTest, Clone) {
- auto* a = create<MultisampledTexture>(ast::TextureDimension::k2d, create<F32>());
+ auto* a = create<MultisampledTexture>(TextureDimension::k2d, create<F32>());
type::Manager mgr;
type::CloneContext ctx{{nullptr}, {nullptr, &mgr}};
auto* mt = a->Clone(ctx);
- EXPECT_EQ(mt->dim(), ast::TextureDimension::k2d);
+ EXPECT_EQ(mt->dim(), TextureDimension::k2d);
EXPECT_TRUE(mt->type()->Is<F32>());
}
diff --git a/src/tint/type/sampled_texture.cc b/src/tint/type/sampled_texture.cc
index 7651b410..323aaa4 100644
--- a/src/tint/type/sampled_texture.cc
+++ b/src/tint/type/sampled_texture.cc
@@ -15,13 +15,14 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/program_builder.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/hash.h"
TINT_INSTANTIATE_TYPEINFO(tint::type::SampledTexture);
namespace tint::type {
-SampledTexture::SampledTexture(ast::TextureDimension dim, const Type* type)
+SampledTexture::SampledTexture(TextureDimension dim, const Type* type)
: Base(utils::Hash(TypeInfo::Of<SampledTexture>().full_hashcode, dim, type), dim), type_(type) {
TINT_ASSERT(Type, type_);
}
diff --git a/src/tint/type/sampled_texture.h b/src/tint/type/sampled_texture.h
index 1f37790..1a83165 100644
--- a/src/tint/type/sampled_texture.h
+++ b/src/tint/type/sampled_texture.h
@@ -18,6 +18,7 @@
#include <string>
#include "src/tint/type/texture.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
@@ -27,7 +28,7 @@
/// Constructor
/// @param dim the dimensionality of the texture
/// @param type the data type of the sampled texture
- SampledTexture(ast::TextureDimension dim, const Type* type);
+ SampledTexture(TextureDimension dim, const Type* type);
/// Destructor
~SampledTexture() override;
diff --git a/src/tint/type/sampled_texture_test.cc b/src/tint/type/sampled_texture_test.cc
index 78ab2d3..2363541 100644
--- a/src/tint/type/sampled_texture_test.cc
+++ b/src/tint/type/sampled_texture_test.cc
@@ -18,6 +18,7 @@
#include "src/tint/type/external_texture.h"
#include "src/tint/type/storage_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
namespace {
@@ -25,13 +26,13 @@
using SampledTextureTest = TestHelper;
TEST_F(SampledTextureTest, Creation) {
- auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
- auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
- auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<F32>());
- auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<I32>());
+ auto* a = create<SampledTexture>(TextureDimension::kCube, create<F32>());
+ auto* b = create<SampledTexture>(TextureDimension::kCube, create<F32>());
+ auto* c = create<SampledTexture>(TextureDimension::k2d, create<F32>());
+ auto* d = create<SampledTexture>(TextureDimension::kCube, create<I32>());
EXPECT_TRUE(a->type()->Is<F32>());
- EXPECT_EQ(a->dim(), ast::TextureDimension::kCube);
+ EXPECT_EQ(a->dim(), TextureDimension::kCube);
EXPECT_EQ(a, b);
EXPECT_NE(a, c);
@@ -39,17 +40,17 @@
}
TEST_F(SampledTextureTest, Hash) {
- auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
- auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+ auto* a = create<SampledTexture>(TextureDimension::kCube, create<F32>());
+ auto* b = create<SampledTexture>(TextureDimension::kCube, create<F32>());
EXPECT_EQ(a->unique_hash, b->unique_hash);
}
TEST_F(SampledTextureTest, Equals) {
- auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
- auto* b = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
- auto* c = create<SampledTexture>(ast::TextureDimension::k2d, create<F32>());
- auto* d = create<SampledTexture>(ast::TextureDimension::kCube, create<I32>());
+ auto* a = create<SampledTexture>(TextureDimension::kCube, create<F32>());
+ auto* b = create<SampledTexture>(TextureDimension::kCube, create<F32>());
+ auto* c = create<SampledTexture>(TextureDimension::k2d, create<F32>());
+ auto* d = create<SampledTexture>(TextureDimension::kCube, create<I32>());
EXPECT_TRUE(a->Equals(*b));
EXPECT_FALSE(a->Equals(*c));
@@ -59,7 +60,7 @@
TEST_F(SampledTextureTest, IsTexture) {
F32 f32;
- SampledTexture s(ast::TextureDimension::kCube, &f32);
+ SampledTexture s(TextureDimension::kCube, &f32);
Texture* ty = &s;
EXPECT_FALSE(ty->Is<DepthTexture>());
EXPECT_FALSE(ty->Is<ExternalTexture>());
@@ -69,30 +70,30 @@
TEST_F(SampledTextureTest, Dim) {
F32 f32;
- SampledTexture s(ast::TextureDimension::k3d, &f32);
- EXPECT_EQ(s.dim(), ast::TextureDimension::k3d);
+ SampledTexture s(TextureDimension::k3d, &f32);
+ EXPECT_EQ(s.dim(), TextureDimension::k3d);
}
TEST_F(SampledTextureTest, Type) {
F32 f32;
- SampledTexture s(ast::TextureDimension::k3d, &f32);
+ SampledTexture s(TextureDimension::k3d, &f32);
EXPECT_EQ(s.type(), &f32);
}
TEST_F(SampledTextureTest, FriendlyName) {
F32 f32;
- SampledTexture s(ast::TextureDimension::k3d, &f32);
+ SampledTexture s(TextureDimension::k3d, &f32);
EXPECT_EQ(s.FriendlyName(Symbols()), "texture_3d<f32>");
}
TEST_F(SampledTextureTest, Clone) {
- auto* a = create<SampledTexture>(ast::TextureDimension::kCube, create<F32>());
+ auto* a = create<SampledTexture>(TextureDimension::kCube, create<F32>());
type::Manager mgr;
type::CloneContext ctx{{nullptr}, {nullptr, &mgr}};
auto* mt = a->Clone(ctx);
- EXPECT_EQ(mt->dim(), ast::TextureDimension::kCube);
+ EXPECT_EQ(mt->dim(), TextureDimension::kCube);
EXPECT_TRUE(mt->type()->Is<F32>());
}
diff --git a/src/tint/type/storage_texture.cc b/src/tint/type/storage_texture.cc
index a47b094..3742681 100644
--- a/src/tint/type/storage_texture.cc
+++ b/src/tint/type/storage_texture.cc
@@ -21,7 +21,7 @@
namespace tint::type {
-StorageTexture::StorageTexture(ast::TextureDimension dim,
+StorageTexture::StorageTexture(TextureDimension dim,
ast::TexelFormat format,
ast::Access access,
Type* subtype)
diff --git a/src/tint/type/storage_texture.h b/src/tint/type/storage_texture.h
index 276e045..5c07bf9 100644
--- a/src/tint/type/storage_texture.h
+++ b/src/tint/type/storage_texture.h
@@ -20,6 +20,7 @@
#include "src/tint/ast/access.h"
#include "src/tint/ast/storage_texture.h"
#include "src/tint/type/texture.h"
+#include "src/tint/type/texture_dimension.h"
// Forward declarations
namespace tint::type {
@@ -36,7 +37,7 @@
/// @param format the texel format of the texture
/// @param access the access control type of the texture
/// @param subtype the storage subtype. Use SubtypeFor() to calculate this.
- StorageTexture(ast::TextureDimension dim,
+ StorageTexture(TextureDimension dim,
ast::TexelFormat format,
ast::Access access,
Type* subtype);
diff --git a/src/tint/type/storage_texture_test.cc b/src/tint/type/storage_texture_test.cc
index ad8a975..96d5d19 100644
--- a/src/tint/type/storage_texture_test.cc
+++ b/src/tint/type/storage_texture_test.cc
@@ -18,31 +18,30 @@
#include "src/tint/type/external_texture.h"
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/test_helper.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::type {
namespace {
struct StorageTextureTest : public TestHelper {
- StorageTexture* Create(ast::TextureDimension dims, ast::TexelFormat fmt, ast::Access access) {
+ StorageTexture* Create(TextureDimension dims, ast::TexelFormat fmt, ast::Access access) {
auto* subtype = StorageTexture::SubtypeFor(fmt, Types());
return create<StorageTexture>(dims, fmt, access, subtype);
}
};
TEST_F(StorageTextureTest, Creation) {
- auto* a = Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
- auto* b = Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
+ auto* a =
+ Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
+ auto* b =
+ Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
auto* c =
- Create(ast::TextureDimension::k2d, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
- auto* d =
- Create(ast::TextureDimension::kCube, ast::TexelFormat::kR32Float, ast::Access::kReadWrite);
- auto* e =
- Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kRead);
+ Create(TextureDimension::k2d, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
+ auto* d = Create(TextureDimension::kCube, ast::TexelFormat::kR32Float, ast::Access::kReadWrite);
+ auto* e = Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kRead);
EXPECT_TRUE(a->type()->Is<F32>());
- EXPECT_EQ(a->dim(), ast::TextureDimension::kCube);
+ EXPECT_EQ(a->dim(), TextureDimension::kCube);
EXPECT_EQ(a, b);
EXPECT_NE(a, c);
@@ -51,25 +50,23 @@
}
TEST_F(StorageTextureTest, Hash) {
- auto* a = Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
- auto* b = Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
+ auto* a =
+ Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
+ auto* b =
+ Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
EXPECT_EQ(a->unique_hash, b->unique_hash);
}
TEST_F(StorageTextureTest, Equals) {
- auto* a = Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
- auto* b = Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
+ auto* a =
+ Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
+ auto* b =
+ Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
auto* c =
- Create(ast::TextureDimension::k2d, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
- auto* d =
- Create(ast::TextureDimension::kCube, ast::TexelFormat::kR32Float, ast::Access::kReadWrite);
- auto* e =
- Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kRead);
+ Create(TextureDimension::k2d, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
+ auto* d = Create(TextureDimension::kCube, ast::TexelFormat::kR32Float, ast::Access::kReadWrite);
+ auto* e = Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kRead);
EXPECT_TRUE(a->Equals(*b));
EXPECT_FALSE(a->Equals(*c));
@@ -79,26 +76,26 @@
}
TEST_F(StorageTextureTest, Dim) {
- auto* s = Create(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
- EXPECT_EQ(s->dim(), ast::TextureDimension::k2dArray);
+ auto* s =
+ Create(TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
+ EXPECT_EQ(s->dim(), TextureDimension::k2dArray);
}
TEST_F(StorageTextureTest, Format) {
- auto* s = Create(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
+ auto* s =
+ Create(TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
EXPECT_EQ(s->texel_format(), ast::TexelFormat::kRgba32Float);
}
TEST_F(StorageTextureTest, FriendlyName) {
- auto* s = Create(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
+ auto* s =
+ Create(TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
EXPECT_EQ(s->FriendlyName(Symbols()), "texture_storage_2d_array<rgba32float, read_write>");
}
TEST_F(StorageTextureTest, F32) {
- Type* s = Create(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
+ Type* s =
+ Create(TextureDimension::k2dArray, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
auto program = Build();
@@ -110,7 +107,7 @@
TEST_F(StorageTextureTest, U32) {
auto* subtype = StorageTexture::SubtypeFor(ast::TexelFormat::kRg32Uint, Types());
- Type* s = create<StorageTexture>(ast::TextureDimension::k2dArray, ast::TexelFormat::kRg32Uint,
+ Type* s = create<StorageTexture>(TextureDimension::k2dArray, ast::TexelFormat::kRg32Uint,
ast::Access::kReadWrite, subtype);
auto program = Build();
@@ -123,7 +120,7 @@
TEST_F(StorageTextureTest, I32) {
auto* subtype = StorageTexture::SubtypeFor(ast::TexelFormat::kRgba32Sint, Types());
- Type* s = create<StorageTexture>(ast::TextureDimension::k2dArray, ast::TexelFormat::kRgba32Sint,
+ Type* s = create<StorageTexture>(TextureDimension::k2dArray, ast::TexelFormat::kRgba32Sint,
ast::Access::kReadWrite, subtype);
auto program = Build();
@@ -135,14 +132,14 @@
}
TEST_F(StorageTextureTest, Clone) {
- auto* a = Create(ast::TextureDimension::kCube, ast::TexelFormat::kRgba32Float,
- ast::Access::kReadWrite);
+ auto* a =
+ Create(TextureDimension::kCube, ast::TexelFormat::kRgba32Float, ast::Access::kReadWrite);
type::Manager mgr;
type::CloneContext ctx{{nullptr}, {nullptr, &mgr}};
auto* mt = a->Clone(ctx);
- EXPECT_EQ(mt->dim(), ast::TextureDimension::kCube);
+ EXPECT_EQ(mt->dim(), TextureDimension::kCube);
EXPECT_EQ(mt->texel_format(), ast::TexelFormat::kRgba32Float);
EXPECT_TRUE(mt->type()->Is<F32>());
}
diff --git a/src/tint/type/texture.cc b/src/tint/type/texture.cc
index 57ce265..717d63ae5 100644
--- a/src/tint/type/texture.cc
+++ b/src/tint/type/texture.cc
@@ -18,7 +18,7 @@
namespace tint::type {
-Texture::Texture(size_t hash, ast::TextureDimension dim) : Base(hash, type::Flags{}), dim_(dim) {}
+Texture::Texture(size_t hash, TextureDimension dim) : Base(hash, type::Flags{}), dim_(dim) {}
Texture::~Texture() = default;
diff --git a/src/tint/type/texture.h b/src/tint/type/texture.h
index fc0f72d..3205fd1 100644
--- a/src/tint/type/texture.h
+++ b/src/tint/type/texture.h
@@ -16,6 +16,7 @@
#define SRC_TINT_TYPE_TEXTURE_H_
#include "src/tint/ast/texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/type/type.h"
namespace tint::type {
@@ -26,15 +27,15 @@
/// Constructor
/// @param hash the unique hash of the node
/// @param dim the dimensionality of the texture
- Texture(size_t hash, ast::TextureDimension dim);
+ Texture(size_t hash, TextureDimension dim);
/// Destructor
~Texture() override;
/// @returns the texture dimension
- ast::TextureDimension dim() const { return dim_; }
+ TextureDimension dim() const { return dim_; }
private:
- ast::TextureDimension const dim_;
+ TextureDimension const dim_;
};
} // namespace tint::type
diff --git a/src/tint/type/texture_dimension.cc b/src/tint/type/texture_dimension.cc
new file mode 100644
index 0000000..4b4fea9
--- /dev/null
+++ b/src/tint/type/texture_dimension.cc
@@ -0,0 +1,46 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#include "src/tint/type/texture_dimension.h"
+
+namespace tint::type {
+
+std::ostream& operator<<(std::ostream& out, type::TextureDimension dim) {
+ switch (dim) {
+ case type::TextureDimension::kNone:
+ out << "None";
+ break;
+ case type::TextureDimension::k1d:
+ out << "1d";
+ break;
+ case type::TextureDimension::k2d:
+ out << "2d";
+ break;
+ case type::TextureDimension::k2dArray:
+ out << "2d_array";
+ break;
+ case type::TextureDimension::k3d:
+ out << "3d";
+ break;
+ case type::TextureDimension::kCube:
+ out << "cube";
+ break;
+ case type::TextureDimension::kCubeArray:
+ out << "cube_array";
+ break;
+ }
+ return out;
+}
+
+} // namespace tint::type
diff --git a/src/tint/type/texture_dimension.h b/src/tint/type/texture_dimension.h
new file mode 100644
index 0000000..0da2b05
--- /dev/null
+++ b/src/tint/type/texture_dimension.h
@@ -0,0 +1,47 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef SRC_TINT_TYPE_TEXTURE_DIMENSION_H_
+#define SRC_TINT_TYPE_TEXTURE_DIMENSION_H_
+
+#include <ostream>
+
+namespace tint::type {
+
+/// The dimensionality of the texture
+enum class TextureDimension {
+ /// Invalid texture
+ kNone = -1,
+ /// 1 dimensional texture
+ k1d,
+ /// 2 dimensional texture
+ k2d,
+ /// 2 dimensional array texture
+ k2dArray,
+ /// 3 dimensional texture
+ k3d,
+ /// cube texture
+ kCube,
+ /// cube array texture
+ kCubeArray,
+};
+
+/// @param out the std::ostream to write to
+/// @param dim the type::TextureDimension
+/// @return the std::ostream so calls can be chained
+std::ostream& operator<<(std::ostream& out, type::TextureDimension dim);
+
+} // namespace tint::type
+
+#endif // SRC_TINT_TYPE_TEXTURE_DIMENSION_H_
diff --git a/src/tint/type/texture_test.cc b/src/tint/type/texture_test.cc
index ae223a1..607fd4a 100644
--- a/src/tint/type/texture_test.cc
+++ b/src/tint/type/texture_test.cc
@@ -20,7 +20,7 @@
namespace tint::type {
namespace {
-using TextureTypeDimTest = TestParamHelper<ast::TextureDimension>;
+using TextureTypeDimTest = TestParamHelper<TextureDimension>;
TEST_P(TextureTypeDimTest, DimMustMatch) {
// Check that the dim() query returns the right dimensionality.
@@ -33,12 +33,12 @@
INSTANTIATE_TEST_SUITE_P(Dimensions,
TextureTypeDimTest,
- ::testing::Values(ast::TextureDimension::k1d,
- ast::TextureDimension::k2d,
- ast::TextureDimension::k2dArray,
- ast::TextureDimension::k3d,
- ast::TextureDimension::kCube,
- ast::TextureDimension::kCubeArray));
+ ::testing::Values(TextureDimension::k1d,
+ TextureDimension::k2d,
+ TextureDimension::k2dArray,
+ TextureDimension::k3d,
+ TextureDimension::kCube,
+ TextureDimension::kCubeArray));
} // namespace
} // namespace tint::type
diff --git a/src/tint/writer/flatten_bindings_test.cc b/src/tint/writer/flatten_bindings_test.cc
index 48d765f..ed929c5 100644
--- a/src/tint/writer/flatten_bindings_test.cc
+++ b/src/tint/writer/flatten_bindings_test.cc
@@ -19,6 +19,7 @@
#include "gtest/gtest.h"
#include "src/tint/program_builder.h"
#include "src/tint/sem/variable.h"
+#include "src/tint/type/texture_dimension.h"
namespace tint::writer {
namespace {
@@ -95,17 +96,17 @@
b.Binding(4_a));
const size_t num_textures = 6;
- b.GlobalVar("texture1", b.ty.sampled_texture(ast::TextureDimension::k2d, b.ty.f32()),
+ b.GlobalVar("texture1", b.ty.sampled_texture(type::TextureDimension::k2d, b.ty.f32()),
b.Group(5_a), b.Binding(5_a));
- b.GlobalVar("texture2", b.ty.multisampled_texture(ast::TextureDimension::k2d, b.ty.f32()),
+ b.GlobalVar("texture2", b.ty.multisampled_texture(type::TextureDimension::k2d, b.ty.f32()),
b.Group(6_a), b.Binding(6_a));
b.GlobalVar("texture3",
- b.ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Float,
+ b.ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Float,
ast::Access::kWrite),
b.Group(7_a), b.Binding(7_a));
- b.GlobalVar("texture4", b.ty.depth_texture(ast::TextureDimension::k2d), b.Group(8_a),
+ b.GlobalVar("texture4", b.ty.depth_texture(type::TextureDimension::k2d), b.Group(8_a),
b.Binding(8_a));
- b.GlobalVar("texture5", b.ty.depth_multisampled_texture(ast::TextureDimension::k2d),
+ b.GlobalVar("texture5", b.ty.depth_multisampled_texture(type::TextureDimension::k2d),
b.Group(9_a), b.Binding(9_a));
b.GlobalVar("texture6", b.ty.external_texture(), b.Group(10_a), b.Binding(10_a));
diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc
index 720423c..2bd041d 100644
--- a/src/tint/writer/glsl/generator_impl.cc
+++ b/src/tint/writer/glsl/generator_impl.cc
@@ -70,6 +70,7 @@
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/defer.h"
#include "src/tint/utils/map.h"
#include "src/tint/utils/scoped_assignment.h"
@@ -1406,8 +1407,8 @@
out << ")";
// textureSize() on array samplers returns the array size in the
// final component, so strip it out.
- if (texture_type->dim() == ast::TextureDimension::k2dArray ||
- texture_type->dim() == ast::TextureDimension::kCubeArray) {
+ if (texture_type->dim() == type::TextureDimension::k2dArray ||
+ texture_type->dim() == type::TextureDimension::kCubeArray) {
out << ".xy";
}
return true;
@@ -1548,7 +1549,7 @@
// GLSL requires Dref to be appended to the coordinates, *unless* it's
// samplerCubeArrayShadow, in which case it will be handled as a separate
// parameter.
- if (texture_type->dim() == ast::TextureDimension::kCubeArray) {
+ if (texture_type->dim() == type::TextureDimension::kCubeArray) {
append_depth_ref_to_coords = false;
}
@@ -2949,22 +2950,22 @@
out << (storage ? "image" : "sampler");
switch (tex->dim()) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
out << "1D";
break;
- case ast::TextureDimension::k2d:
+ case type::TextureDimension::k2d:
out << ((ms || depth_ms) ? "2DMS" : "2D");
break;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
out << ((ms || depth_ms) ? "2DMSArray" : "2DArray");
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
out << "3D";
break;
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::kCube:
out << "Cube";
break;
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCubeArray:
out << "CubeArray";
break;
default:
diff --git a/src/tint/writer/glsl/generator_impl_type_test.cc b/src/tint/writer/glsl/generator_impl_type_test.cc
index 9212dbf..fc5b0ce 100644
--- a/src/tint/writer/glsl/generator_impl_type_test.cc
+++ b/src/tint/writer/glsl/generator_impl_type_test.cc
@@ -20,6 +20,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/sampler.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/writer/glsl/test_helper.h"
using ::testing::HasSubstr;
@@ -299,7 +300,7 @@
}
struct GlslDepthTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
std::string result;
};
inline std::ostream& operator<<(std::ostream& out, GlslDepthTextureData data) {
@@ -331,14 +332,14 @@
GlslGeneratorImplTest_Type,
GlslDepthTexturesTest,
testing::Values(
- GlslDepthTextureData{ast::TextureDimension::k2d, "sampler2DShadow tex;"},
- GlslDepthTextureData{ast::TextureDimension::k2dArray, "sampler2DArrayShadow tex;"},
- GlslDepthTextureData{ast::TextureDimension::kCube, "samplerCubeShadow tex;"},
- GlslDepthTextureData{ast::TextureDimension::kCubeArray, "samplerCubeArrayShadow tex;"}));
+ GlslDepthTextureData{type::TextureDimension::k2d, "sampler2DShadow tex;"},
+ GlslDepthTextureData{type::TextureDimension::k2dArray, "sampler2DArrayShadow tex;"},
+ GlslDepthTextureData{type::TextureDimension::kCube, "samplerCubeShadow tex;"},
+ GlslDepthTextureData{type::TextureDimension::kCubeArray, "samplerCubeArrayShadow tex;"}));
using GlslDepthMultisampledTexturesTest = TestHelper;
TEST_F(GlslDepthMultisampledTexturesTest, Emit) {
- auto* t = ty.depth_multisampled_texture(ast::TextureDimension::k2d);
+ auto* t = ty.depth_multisampled_texture(type::TextureDimension::k2d);
GlobalVar("tex", t, Binding(1_a), Group(2_a));
@@ -358,7 +359,7 @@
enum class TextureDataType { F32, U32, I32 };
struct GlslSampledTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
TextureDataType datatype;
std::string result;
};
@@ -403,99 +404,99 @@
GlslSampledTexturesTest,
testing::Values(
GlslSampledTextureData{
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::F32,
"sampler1D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::F32,
"sampler2D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::F32,
"sampler2DArray tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::F32,
"sampler3D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::F32,
"samplerCube tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::F32,
"samplerCubeArray tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::U32,
"usampler1D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::U32,
"usampler2D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::U32,
"usampler2DArray tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::U32,
"usampler3D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::U32,
"usamplerCube tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::U32,
"usamplerCubeArray tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::I32,
"isampler1D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::I32,
"isampler2D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::I32,
"isampler2DArray tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::I32,
"isampler3D tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::I32,
"isamplerCube tex;",
},
GlslSampledTextureData{
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::I32,
"isamplerCubeArray tex;",
}));
TEST_F(GlslGeneratorImplTest_Type, EmitMultisampledTexture) {
auto* f32 = create<type::F32>();
- auto* s = create<type::MultisampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* s = create<type::MultisampledTexture>(type::TextureDimension::k2d, f32);
GeneratorImpl& gen = Build();
@@ -506,7 +507,7 @@
}
struct GlslStorageTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
ast::TexelFormat imgfmt;
std::string result;
};
@@ -537,31 +538,31 @@
INSTANTIATE_TEST_SUITE_P(
GlslGeneratorImplTest_Type,
GlslStorageTexturesTest,
- testing::Values(GlslStorageTextureData{ast::TextureDimension::k1d,
+ testing::Values(GlslStorageTextureData{type::TextureDimension::k1d,
ast::TexelFormat::kRgba8Unorm, "image1D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k2d,
+ GlslStorageTextureData{type::TextureDimension::k2d,
ast::TexelFormat::kRgba16Float, "image2D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k2dArray,
+ GlslStorageTextureData{type::TextureDimension::k2dArray,
ast::TexelFormat::kR32Float, "image2DArray tex;"},
- GlslStorageTextureData{ast::TextureDimension::k3d, ast::TexelFormat::kRg32Float,
- "image3D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k1d,
+ GlslStorageTextureData{type::TextureDimension::k3d,
+ ast::TexelFormat::kRg32Float, "image3D tex;"},
+ GlslStorageTextureData{type::TextureDimension::k1d,
ast::TexelFormat::kRgba32Float, "image1D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k2d,
+ GlslStorageTextureData{type::TextureDimension::k2d,
ast::TexelFormat::kRgba16Uint, "image2D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k2dArray,
+ GlslStorageTextureData{type::TextureDimension::k2dArray,
ast::TexelFormat::kR32Uint, "image2DArray tex;"},
- GlslStorageTextureData{ast::TextureDimension::k3d, ast::TexelFormat::kRg32Uint,
+ GlslStorageTextureData{type::TextureDimension::k3d, ast::TexelFormat::kRg32Uint,
"image3D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k1d,
+ GlslStorageTextureData{type::TextureDimension::k1d,
ast::TexelFormat::kRgba32Uint, "image1D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k2d,
+ GlslStorageTextureData{type::TextureDimension::k2d,
ast::TexelFormat::kRgba16Sint, "image2D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k2dArray,
+ GlslStorageTextureData{type::TextureDimension::k2dArray,
ast::TexelFormat::kR32Sint, "image2DArray tex;"},
- GlslStorageTextureData{ast::TextureDimension::k3d, ast::TexelFormat::kRg32Sint,
+ GlslStorageTextureData{type::TextureDimension::k3d, ast::TexelFormat::kRg32Sint,
"image3D tex;"},
- GlslStorageTextureData{ast::TextureDimension::k1d,
+ GlslStorageTextureData{type::TextureDimension::k1d,
ast::TexelFormat::kRgba32Sint, "image1D tex;"}));
} // namespace
diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc
index 3bac389..f2b525e 100644
--- a/src/tint/writer/hlsl/generator_impl.cc
+++ b/src/tint/writer/hlsl/generator_impl.cc
@@ -69,6 +69,7 @@
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/compiler_macros.h"
#include "src/tint/utils/defer.h"
#include "src/tint/utils/map.h"
@@ -2312,27 +2313,27 @@
switch (builtin->Type()) {
case sem::BuiltinType::kTextureDimensions:
switch (texture_type->dim()) {
- case ast::TextureDimension::kNone:
+ case type::TextureDimension::kNone:
TINT_ICE(Writer, diagnostics_) << "texture dimension is kNone";
return false;
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
num_dimensions = 1;
break;
- case ast::TextureDimension::k2d:
+ case type::TextureDimension::k2d:
num_dimensions = is_ms ? 3 : 2;
swizzle = is_ms ? ".xy" : "";
break;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
num_dimensions = is_ms ? 4 : 3;
swizzle = ".xy";
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
num_dimensions = 3;
break;
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::kCube:
num_dimensions = 2;
break;
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCubeArray:
num_dimensions = 3;
swizzle = ".xy";
break;
@@ -2343,11 +2344,11 @@
default:
TINT_ICE(Writer, diagnostics_) << "texture dimension is not arrayed";
return false;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
num_dimensions = is_ms ? 4 : 3;
swizzle = ".z";
break;
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCubeArray:
num_dimensions = 3;
swizzle = ".z";
break;
@@ -2359,18 +2360,18 @@
TINT_ICE(Writer, diagnostics_)
<< "texture dimension does not support mips";
return false;
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
num_dimensions = 2;
swizzle = ".y";
break;
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::kCube:
num_dimensions = 3;
swizzle = ".z";
break;
- case ast::TextureDimension::k2dArray:
- case ast::TextureDimension::k3d:
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::k2dArray:
+ case type::TextureDimension::k3d:
+ case type::TextureDimension::kCubeArray:
num_dimensions = 4;
swizzle = ".w";
break;
@@ -2382,11 +2383,11 @@
TINT_ICE(Writer, diagnostics_)
<< "texture dimension does not support multisampling";
return false;
- case ast::TextureDimension::k2d:
+ case type::TextureDimension::k2d:
num_dimensions = 3;
swizzle = ".z";
break;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
num_dimensions = 4;
swizzle = ".w";
break;
@@ -4051,22 +4052,22 @@
out << "Texture";
switch (tex->dim()) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
out << "1D";
break;
- case ast::TextureDimension::k2d:
+ case type::TextureDimension::k2d:
out << ((ms || depth_ms) ? "2DMS" : "2D");
break;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
out << ((ms || depth_ms) ? "2DMSArray" : "2DArray");
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
out << "3D";
break;
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::kCube:
out << "Cube";
break;
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCubeArray:
out << "CubeArray";
break;
default:
diff --git a/src/tint/writer/hlsl/generator_impl_type_test.cc b/src/tint/writer/hlsl/generator_impl_type_test.cc
index 0b3b75e..715df9a 100644
--- a/src/tint/writer/hlsl/generator_impl_type_test.cc
+++ b/src/tint/writer/hlsl/generator_impl_type_test.cc
@@ -20,6 +20,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/sampler.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/writer/hlsl/test_helper.h"
using ::testing::HasSubstr;
@@ -295,7 +296,7 @@
}
struct HlslDepthTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
std::string result;
};
inline std::ostream& operator<<(std::ostream& out, HlslDepthTextureData data) {
@@ -326,18 +327,18 @@
INSTANTIATE_TEST_SUITE_P(
HlslGeneratorImplTest_Type,
HlslDepthTexturesTest,
- testing::Values(HlslDepthTextureData{ast::TextureDimension::k2d,
+ testing::Values(HlslDepthTextureData{type::TextureDimension::k2d,
"Texture2D tex : register(t1, space2);"},
- HlslDepthTextureData{ast::TextureDimension::k2dArray,
+ HlslDepthTextureData{type::TextureDimension::k2dArray,
"Texture2DArray tex : register(t1, space2);"},
- HlslDepthTextureData{ast::TextureDimension::kCube,
+ HlslDepthTextureData{type::TextureDimension::kCube,
"TextureCube tex : register(t1, space2);"},
- HlslDepthTextureData{ast::TextureDimension::kCubeArray,
+ HlslDepthTextureData{type::TextureDimension::kCubeArray,
"TextureCubeArray tex : register(t1, space2);"}));
using HlslDepthMultisampledTexturesTest = TestHelper;
TEST_F(HlslDepthMultisampledTexturesTest, Emit) {
- auto* t = ty.depth_multisampled_texture(ast::TextureDimension::k2d);
+ auto* t = ty.depth_multisampled_texture(type::TextureDimension::k2d);
GlobalVar("tex", t, Binding(1_a), Group(2_a));
@@ -357,7 +358,7 @@
enum class TextureDataType { F32, U32, I32 };
struct HlslSampledTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
TextureDataType datatype;
std::string result;
};
@@ -402,99 +403,99 @@
HlslSampledTexturesTest,
testing::Values(
HlslSampledTextureData{
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::F32,
"Texture1D<float4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::F32,
"Texture2D<float4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::F32,
"Texture2DArray<float4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::F32,
"Texture3D<float4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::F32,
"TextureCube<float4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::F32,
"TextureCubeArray<float4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::U32,
"Texture1D<uint4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::U32,
"Texture2D<uint4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::U32,
"Texture2DArray<uint4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::U32,
"Texture3D<uint4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::U32,
"TextureCube<uint4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::U32,
"TextureCubeArray<uint4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k1d,
+ type::TextureDimension::k1d,
TextureDataType::I32,
"Texture1D<int4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k2d,
+ type::TextureDimension::k2d,
TextureDataType::I32,
"Texture2D<int4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k2dArray,
+ type::TextureDimension::k2dArray,
TextureDataType::I32,
"Texture2DArray<int4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::k3d,
+ type::TextureDimension::k3d,
TextureDataType::I32,
"Texture3D<int4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::kCube,
+ type::TextureDimension::kCube,
TextureDataType::I32,
"TextureCube<int4> tex : register(t1, space2);",
},
HlslSampledTextureData{
- ast::TextureDimension::kCubeArray,
+ type::TextureDimension::kCubeArray,
TextureDataType::I32,
"TextureCubeArray<int4> tex : register(t1, space2);",
}));
TEST_F(HlslGeneratorImplTest_Type, EmitMultisampledTexture) {
auto* f32 = create<type::F32>();
- auto* s = create<type::MultisampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* s = create<type::MultisampledTexture>(type::TextureDimension::k2d, f32);
GeneratorImpl& gen = Build();
@@ -505,7 +506,7 @@
}
struct HlslStorageTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
ast::TexelFormat imgfmt;
std::string result;
};
@@ -542,31 +543,31 @@
HlslGeneratorImplTest_Type,
HlslStorageTexturesTest,
testing::Values(
- HlslStorageTextureData{ast::TextureDimension::k1d, ast::TexelFormat::kRgba8Unorm,
+ HlslStorageTextureData{type::TextureDimension::k1d, ast::TexelFormat::kRgba8Unorm,
"RWTexture1D<float4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k2d, ast::TexelFormat::kRgba16Float,
+ HlslStorageTextureData{type::TextureDimension::k2d, ast::TexelFormat::kRgba16Float,
"RWTexture2D<float4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k2dArray, ast::TexelFormat::kR32Float,
+ HlslStorageTextureData{type::TextureDimension::k2dArray, ast::TexelFormat::kR32Float,
"RWTexture2DArray<float4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k3d, ast::TexelFormat::kRg32Float,
+ HlslStorageTextureData{type::TextureDimension::k3d, ast::TexelFormat::kRg32Float,
"RWTexture3D<float4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k1d, ast::TexelFormat::kRgba32Float,
+ HlslStorageTextureData{type::TextureDimension::k1d, ast::TexelFormat::kRgba32Float,
"RWTexture1D<float4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k2d, ast::TexelFormat::kRgba16Uint,
+ HlslStorageTextureData{type::TextureDimension::k2d, ast::TexelFormat::kRgba16Uint,
"RWTexture2D<uint4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k2dArray, ast::TexelFormat::kR32Uint,
+ HlslStorageTextureData{type::TextureDimension::k2dArray, ast::TexelFormat::kR32Uint,
"RWTexture2DArray<uint4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k3d, ast::TexelFormat::kRg32Uint,
+ HlslStorageTextureData{type::TextureDimension::k3d, ast::TexelFormat::kRg32Uint,
"RWTexture3D<uint4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k1d, ast::TexelFormat::kRgba32Uint,
+ HlslStorageTextureData{type::TextureDimension::k1d, ast::TexelFormat::kRgba32Uint,
"RWTexture1D<uint4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k2d, ast::TexelFormat::kRgba16Sint,
+ HlslStorageTextureData{type::TextureDimension::k2d, ast::TexelFormat::kRgba16Sint,
"RWTexture2D<int4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k2dArray, ast::TexelFormat::kR32Sint,
+ HlslStorageTextureData{type::TextureDimension::k2dArray, ast::TexelFormat::kR32Sint,
"RWTexture2DArray<int4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k3d, ast::TexelFormat::kRg32Sint,
+ HlslStorageTextureData{type::TextureDimension::k3d, ast::TexelFormat::kRg32Sint,
"RWTexture3D<int4> tex : register(u1, space2);"},
- HlslStorageTextureData{ast::TextureDimension::k1d, ast::TexelFormat::kRgba32Sint,
+ HlslStorageTextureData{type::TextureDimension::k1d, ast::TexelFormat::kRgba32Sint,
"RWTexture1D<int4> tex : register(u1, space2);"}));
} // namespace
diff --git a/src/tint/writer/msl/generator_impl.cc b/src/tint/writer/msl/generator_impl.cc
index 4889d7d..771582a 100644
--- a/src/tint/writer/msl/generator_impl.cc
+++ b/src/tint/writer/msl/generator_impl.cc
@@ -72,6 +72,7 @@
#include "src/tint/type/reference.h"
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/type/u32.h"
#include "src/tint/type/vector.h"
#include "src/tint/type/void.h"
@@ -1020,25 +1021,25 @@
};
// MSL requires that `lod` is a constant 0 for 1D textures.
- bool level_is_constant_zero = texture_type->dim() == ast::TextureDimension::k1d;
+ bool level_is_constant_zero = texture_type->dim() == type::TextureDimension::k1d;
switch (builtin->Type()) {
case sem::BuiltinType::kTextureDimensions: {
std::vector<const char*> dims;
switch (texture_type->dim()) {
- case ast::TextureDimension::kNone:
+ case type::TextureDimension::kNone:
diagnostics_.add_error(diag::System::Writer, "texture dimension is kNone");
return false;
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
dims = {"width"};
break;
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
- case ast::TextureDimension::kCube:
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
+ case type::TextureDimension::kCube:
+ case type::TextureDimension::kCubeArray:
dims = {"width", "height"};
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
dims = {"width", "height", "depth"};
break;
}
@@ -1155,14 +1156,14 @@
if (usage == Usage::kCoords && e->Type()->UnwrapRef()->is_integer_scalar_or_vector()) {
casted = true;
switch (texture_type->dim()) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
out << "uint(";
break;
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
out << "uint2(";
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
out << "uint3(";
break;
default:
@@ -1212,17 +1213,17 @@
if (auto* ddx = arg(Usage::kDdx)) {
auto dim = texture_type->dim();
switch (dim) {
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
maybe_write_comma();
out << "gradient2d(";
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
maybe_write_comma();
out << "gradient3d(";
break;
- case ast::TextureDimension::kCube:
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCube:
+ case type::TextureDimension::kCubeArray:
maybe_write_comma();
out << "gradientcube(";
break;
@@ -1257,8 +1258,8 @@
if (!has_offset) {
// offset argument may need to be provided if we have a component.
switch (texture_type->dim()) {
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k2dArray:
out << "int2(0), ";
break;
default:
@@ -2624,22 +2625,22 @@
}
switch (tex->dim()) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
out << "1d";
break;
- case ast::TextureDimension::k2d:
+ case type::TextureDimension::k2d:
out << "2d";
break;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
out << "2d_array";
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
out << "3d";
break;
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::kCube:
out << "cube";
break;
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCubeArray:
out << "cube_array";
break;
default:
diff --git a/src/tint/writer/msl/generator_impl_type_test.cc b/src/tint/writer/msl/generator_impl_type_test.cc
index 3b63013..ef37148 100644
--- a/src/tint/writer/msl/generator_impl_type_test.cc
+++ b/src/tint/writer/msl/generator_impl_type_test.cc
@@ -22,6 +22,7 @@
#include "src/tint/type/sampled_texture.h"
#include "src/tint/type/sampler.h"
#include "src/tint/type/storage_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/writer/msl/test_helper.h"
using ::testing::HasSubstr;
@@ -750,7 +751,7 @@
}
struct MslDepthTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
std::string result;
};
inline std::ostream& operator<<(std::ostream& out, MslDepthTextureData data) {
@@ -773,16 +774,16 @@
MslGeneratorImplTest,
MslDepthTexturesTest,
testing::Values(
- MslDepthTextureData{ast::TextureDimension::k2d, "depth2d<float, access::sample>"},
- MslDepthTextureData{ast::TextureDimension::k2dArray,
+ MslDepthTextureData{type::TextureDimension::k2d, "depth2d<float, access::sample>"},
+ MslDepthTextureData{type::TextureDimension::k2dArray,
"depth2d_array<float, access::sample>"},
- MslDepthTextureData{ast::TextureDimension::kCube, "depthcube<float, access::sample>"},
- MslDepthTextureData{ast::TextureDimension::kCubeArray,
+ MslDepthTextureData{type::TextureDimension::kCube, "depthcube<float, access::sample>"},
+ MslDepthTextureData{type::TextureDimension::kCubeArray,
"depthcube_array<float, access::sample>"}));
using MslDepthMultisampledTexturesTest = TestHelper;
TEST_F(MslDepthMultisampledTexturesTest, Emit) {
- type::DepthMultisampledTexture s(ast::TextureDimension::k2d);
+ type::DepthMultisampledTexture s(type::TextureDimension::k2d);
GeneratorImpl& gen = Build();
@@ -792,7 +793,7 @@
}
struct MslTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
std::string result;
};
inline std::ostream& operator<<(std::ostream& out, MslTextureData data) {
@@ -816,17 +817,17 @@
MslGeneratorImplTest,
MslSampledtexturesTest,
testing::Values(
- MslTextureData{ast::TextureDimension::k1d, "texture1d<float, access::sample>"},
- MslTextureData{ast::TextureDimension::k2d, "texture2d<float, access::sample>"},
- MslTextureData{ast::TextureDimension::k2dArray, "texture2d_array<float, access::sample>"},
- MslTextureData{ast::TextureDimension::k3d, "texture3d<float, access::sample>"},
- MslTextureData{ast::TextureDimension::kCube, "texturecube<float, access::sample>"},
- MslTextureData{ast::TextureDimension::kCubeArray,
+ MslTextureData{type::TextureDimension::k1d, "texture1d<float, access::sample>"},
+ MslTextureData{type::TextureDimension::k2d, "texture2d<float, access::sample>"},
+ MslTextureData{type::TextureDimension::k2dArray, "texture2d_array<float, access::sample>"},
+ MslTextureData{type::TextureDimension::k3d, "texture3d<float, access::sample>"},
+ MslTextureData{type::TextureDimension::kCube, "texturecube<float, access::sample>"},
+ MslTextureData{type::TextureDimension::kCubeArray,
"texturecube_array<float, access::sample>"}));
TEST_F(MslGeneratorImplTest, Emit_TypeMultisampledTexture) {
auto* u32 = create<type::U32>();
- auto* ms = create<type::MultisampledTexture>(ast::TextureDimension::k2d, u32);
+ auto* ms = create<type::MultisampledTexture>(type::TextureDimension::k2d, u32);
GeneratorImpl& gen = Build();
@@ -836,7 +837,7 @@
}
struct MslStorageTextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
std::string result;
};
inline std::ostream& operator<<(std::ostream& out, MslStorageTextureData data) {
@@ -859,11 +860,11 @@
MslGeneratorImplTest,
MslStorageTexturesTest,
testing::Values(
- MslStorageTextureData{ast::TextureDimension::k1d, "texture1d<float, access::write>"},
- MslStorageTextureData{ast::TextureDimension::k2d, "texture2d<float, access::write>"},
- MslStorageTextureData{ast::TextureDimension::k2dArray,
+ MslStorageTextureData{type::TextureDimension::k1d, "texture1d<float, access::write>"},
+ MslStorageTextureData{type::TextureDimension::k2d, "texture2d<float, access::write>"},
+ MslStorageTextureData{type::TextureDimension::k2dArray,
"texture2d_array<float, access::write>"},
- MslStorageTextureData{ast::TextureDimension::k3d, "texture3d<float, access::write>"}));
+ MslStorageTextureData{type::TextureDimension::k3d, "texture3d<float, access::write>"}));
} // namespace
} // namespace tint::writer::msl
diff --git a/src/tint/writer/spirv/builder.cc b/src/tint/writer/spirv/builder.cc
index df5a2e3..0090156 100644
--- a/src/tint/writer/spirv/builder.cc
+++ b/src/tint/writer/spirv/builder.cc
@@ -44,6 +44,7 @@
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/reference.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/type/vector.h"
#include "src/tint/utils/compiler_macros.h"
#include "src/tint/utils/defer.h"
@@ -2785,16 +2786,16 @@
std::vector<uint32_t> swizzle;
uint32_t spirv_dims = 0;
switch (texture_type->dim()) {
- case ast::TextureDimension::kNone:
+ case type::TextureDimension::kNone:
error_ = "texture dimension is kNone";
return false;
- case ast::TextureDimension::k1d:
- case ast::TextureDimension::k2d:
- case ast::TextureDimension::k3d:
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::k1d:
+ case type::TextureDimension::k2d:
+ case type::TextureDimension::k3d:
+ case type::TextureDimension::kCube:
break; // No swizzle needed
- case ast::TextureDimension::kCubeArray:
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::kCubeArray:
+ case type::TextureDimension::k2dArray:
swizzle = {0, 1}; // Strip array index
spirv_dims = 3; // [width, height, array_count]
break;
@@ -2825,8 +2826,8 @@
default:
error_ = "texture is not arrayed";
return false;
- case ast::TextureDimension::k2dArray:
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::k2dArray:
+ case type::TextureDimension::kCubeArray:
spirv_dims = 3;
break;
}
@@ -3764,12 +3765,12 @@
uint32_t array_literal = 0u;
const auto dim = texture->dim();
- if (dim == ast::TextureDimension::k2dArray || dim == ast::TextureDimension::kCubeArray) {
+ if (dim == type::TextureDimension::k2dArray || dim == type::TextureDimension::kCubeArray) {
array_literal = 1u;
}
uint32_t dim_literal = SpvDim2D;
- if (dim == ast::TextureDimension::k1d) {
+ if (dim == type::TextureDimension::k1d) {
dim_literal = SpvDim1D;
if (texture->Is<type::SampledTexture>()) {
push_capability(SpvCapabilitySampled1D);
@@ -3777,10 +3778,10 @@
push_capability(SpvCapabilityImage1D);
}
}
- if (dim == ast::TextureDimension::k3d) {
+ if (dim == type::TextureDimension::k3d) {
dim_literal = SpvDim3D;
}
- if (dim == ast::TextureDimension::kCube || dim == ast::TextureDimension::kCubeArray) {
+ if (dim == type::TextureDimension::kCube || dim == type::TextureDimension::kCubeArray) {
dim_literal = SpvDimCube;
}
@@ -3800,7 +3801,7 @@
sampled_literal = 1u;
}
- if (dim == ast::TextureDimension::kCubeArray) {
+ if (dim == type::TextureDimension::kCubeArray) {
if (texture->IsAnyOf<type::SampledTexture, type::DepthTexture>()) {
push_capability(SpvCapabilitySampledCubeArray);
}
diff --git a/src/tint/writer/spirv/builder_builtin_test.cc b/src/tint/writer/spirv/builder_builtin_test.cc
index 9b05980..3262b35 100644
--- a/src/tint/writer/spirv/builder_builtin_test.cc
+++ b/src/tint/writer/spirv/builder_builtin_test.cc
@@ -15,6 +15,7 @@
#include "src/tint/ast/call_statement.h"
#include "src/tint/ast/stage_attribute.h"
#include "src/tint/type/depth_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/string.h"
#include "src/tint/writer/spirv/spv_dump.h"
#include "src/tint/writer/spirv/test_helper.h"
@@ -41,7 +42,7 @@
// This tests that we do not push OpTypeSampledImage and float_0 type twice.
TEST_F(BuiltinBuilderTest, Call_TextureSampleCompare_Twice) {
auto* s = ty.sampler(ast::SamplerKind::kComparisonSampler);
- auto* t = ty.depth_texture(ast::TextureDimension::k2d);
+ auto* t = ty.depth_texture(type::TextureDimension::k2d);
auto* tex = GlobalVar("texture", t, Binding(0_a), Group(0_a));
auto* sampler = GlobalVar("sampler", s, Binding(1_a), Group(0_a));
diff --git a/src/tint/writer/spirv/builder_global_variable_test.cc b/src/tint/writer/spirv/builder_global_variable_test.cc
index 7d3ec59..9732abb 100644
--- a/src/tint/writer/spirv/builder_global_variable_test.cc
+++ b/src/tint/writer/spirv/builder_global_variable_test.cc
@@ -14,6 +14,7 @@
#include "src/tint/ast/id_attribute.h"
#include "src/tint/ast/stage_attribute.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/writer/spirv/spv_dump.h"
#include "src/tint/writer/spirv/test_helper.h"
@@ -469,7 +470,7 @@
TEST_F(BuilderTest, GlobalVar_TextureStorageWriteOnly) {
// var<uniform_constant> a : texture_storage_2d<r32uint, write>;
- auto* type = ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ auto* type = ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kWrite);
auto* var_a = GlobalVar("a", type, Binding(0_a), Group(0_a));
diff --git a/src/tint/writer/spirv/builder_type_test.cc b/src/tint/writer/spirv/builder_type_test.cc
index d698593..e7cdd74 100644
--- a/src/tint/writer/spirv/builder_type_test.cc
+++ b/src/tint/writer/spirv/builder_type_test.cc
@@ -15,6 +15,7 @@
#include "src/tint/type/depth_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/writer/spirv/spv_dump.h"
#include "src/tint/writer/spirv/test_helper.h"
@@ -631,7 +632,7 @@
PtrData{ast::AddressSpace::kFunction, SpvStorageClassFunction}));
TEST_F(BuilderTest_Type, DepthTexture_Generate_2d) {
- auto* two_d = create<type::DepthTexture>(ast::TextureDimension::k2d);
+ auto* two_d = create<type::DepthTexture>(type::TextureDimension::k2d);
spirv::Builder& b = Build();
@@ -645,7 +646,7 @@
}
TEST_F(BuilderTest_Type, DepthTexture_Generate_2dArray) {
- auto* two_d_array = create<type::DepthTexture>(ast::TextureDimension::k2dArray);
+ auto* two_d_array = create<type::DepthTexture>(type::TextureDimension::k2dArray);
spirv::Builder& b = Build();
@@ -659,7 +660,7 @@
}
TEST_F(BuilderTest_Type, DepthTexture_Generate_Cube) {
- auto* cube = create<type::DepthTexture>(ast::TextureDimension::kCube);
+ auto* cube = create<type::DepthTexture>(type::TextureDimension::kCube);
spirv::Builder& b = Build();
@@ -674,7 +675,7 @@
}
TEST_F(BuilderTest_Type, DepthTexture_Generate_CubeArray) {
- auto* cube_array = create<type::DepthTexture>(ast::TextureDimension::kCubeArray);
+ auto* cube_array = create<type::DepthTexture>(type::TextureDimension::kCubeArray);
spirv::Builder& b = Build();
@@ -692,7 +693,7 @@
TEST_F(BuilderTest_Type, MultisampledTexture_Generate_2d_i32) {
auto* i32 = create<type::I32>();
- auto* ms = create<type::MultisampledTexture>(ast::TextureDimension::k2d, i32);
+ auto* ms = create<type::MultisampledTexture>(type::TextureDimension::k2d, i32);
spirv::Builder& b = Build();
@@ -705,7 +706,7 @@
TEST_F(BuilderTest_Type, MultisampledTexture_Generate_2d_u32) {
auto* u32 = create<type::U32>();
- auto* ms = create<type::MultisampledTexture>(ast::TextureDimension::k2d, u32);
+ auto* ms = create<type::MultisampledTexture>(type::TextureDimension::k2d, u32);
spirv::Builder& b = Build();
@@ -719,7 +720,7 @@
TEST_F(BuilderTest_Type, MultisampledTexture_Generate_2d_f32) {
auto* f32 = create<type::F32>();
- auto* ms = create<type::MultisampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* ms = create<type::MultisampledTexture>(type::TextureDimension::k2d, f32);
spirv::Builder& b = Build();
@@ -732,7 +733,7 @@
}
TEST_F(BuilderTest_Type, SampledTexture_Generate_1d_i32) {
- auto* s = create<type::SampledTexture>(ast::TextureDimension::k1d, create<type::I32>());
+ auto* s = create<type::SampledTexture>(type::TextureDimension::k1d, create<type::I32>());
spirv::Builder& b = Build();
@@ -750,7 +751,7 @@
TEST_F(BuilderTest_Type, SampledTexture_Generate_1d_u32) {
auto* u32 = create<type::U32>();
- auto* s = create<type::SampledTexture>(ast::TextureDimension::k1d, u32);
+ auto* s = create<type::SampledTexture>(type::TextureDimension::k1d, u32);
spirv::Builder& b = Build();
@@ -768,7 +769,7 @@
TEST_F(BuilderTest_Type, SampledTexture_Generate_1d_f32) {
auto* f32 = create<type::F32>();
- auto* s = create<type::SampledTexture>(ast::TextureDimension::k1d, f32);
+ auto* s = create<type::SampledTexture>(type::TextureDimension::k1d, f32);
spirv::Builder& b = Build();
@@ -786,7 +787,7 @@
TEST_F(BuilderTest_Type, SampledTexture_Generate_2d) {
auto* f32 = create<type::F32>();
- auto* s = create<type::SampledTexture>(ast::TextureDimension::k2d, f32);
+ auto* s = create<type::SampledTexture>(type::TextureDimension::k2d, f32);
spirv::Builder& b = Build();
@@ -800,7 +801,7 @@
TEST_F(BuilderTest_Type, SampledTexture_Generate_2d_array) {
auto* f32 = create<type::F32>();
- auto* s = create<type::SampledTexture>(ast::TextureDimension::k2dArray, f32);
+ auto* s = create<type::SampledTexture>(type::TextureDimension::k2dArray, f32);
spirv::Builder& b = Build();
@@ -814,7 +815,7 @@
TEST_F(BuilderTest_Type, SampledTexture_Generate_3d) {
auto* f32 = create<type::F32>();
- auto* s = create<type::SampledTexture>(ast::TextureDimension::k3d, f32);
+ auto* s = create<type::SampledTexture>(type::TextureDimension::k3d, f32);
spirv::Builder& b = Build();
@@ -828,7 +829,7 @@
TEST_F(BuilderTest_Type, SampledTexture_Generate_Cube) {
auto* f32 = create<type::F32>();
- auto* s = create<type::SampledTexture>(ast::TextureDimension::kCube, f32);
+ auto* s = create<type::SampledTexture>(type::TextureDimension::kCube, f32);
spirv::Builder& b = Build();
@@ -843,7 +844,7 @@
TEST_F(BuilderTest_Type, SampledTexture_Generate_CubeArray) {
auto* f32 = create<type::F32>();
- auto* s = create<type::SampledTexture>(ast::TextureDimension::kCubeArray, f32);
+ auto* s = create<type::SampledTexture>(type::TextureDimension::kCubeArray, f32);
spirv::Builder& b = Build();
@@ -859,7 +860,7 @@
}
TEST_F(BuilderTest_Type, StorageTexture_Generate_1d) {
- auto* s = ty.storage_texture(ast::TextureDimension::k1d, ast::TexelFormat::kR32Float,
+ auto* s = ty.storage_texture(type::TextureDimension::k1d, ast::TexelFormat::kR32Float,
ast::Access::kWrite);
GlobalVar("test_var", s, Binding(0_a), Group(0_a));
@@ -874,7 +875,7 @@
}
TEST_F(BuilderTest_Type, StorageTexture_Generate_2d) {
- auto* s = ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Float,
+ auto* s = ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Float,
ast::Access::kWrite);
GlobalVar("test_var", s, Binding(0_a), Group(0_a));
@@ -889,7 +890,7 @@
}
TEST_F(BuilderTest_Type, StorageTexture_Generate_2dArray) {
- auto* s = ty.storage_texture(ast::TextureDimension::k2dArray, ast::TexelFormat::kR32Float,
+ auto* s = ty.storage_texture(type::TextureDimension::k2dArray, ast::TexelFormat::kR32Float,
ast::Access::kWrite);
GlobalVar("test_var", s, Binding(0_a), Group(0_a));
@@ -904,7 +905,7 @@
}
TEST_F(BuilderTest_Type, StorageTexture_Generate_3d) {
- auto* s = ty.storage_texture(ast::TextureDimension::k3d, ast::TexelFormat::kR32Float,
+ auto* s = ty.storage_texture(type::TextureDimension::k3d, ast::TexelFormat::kR32Float,
ast::Access::kWrite);
GlobalVar("test_var", s, Binding(0_a), Group(0_a));
@@ -919,7 +920,7 @@
}
TEST_F(BuilderTest_Type, StorageTexture_Generate_SampledTypeFloat_Format_r32float) {
- auto* s = ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Float,
+ auto* s = ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Float,
ast::Access::kWrite);
GlobalVar("test_var", s, Binding(0_a), Group(0_a));
@@ -934,7 +935,7 @@
}
TEST_F(BuilderTest_Type, StorageTexture_Generate_SampledTypeSint_Format_r32sint) {
- auto* s = ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Sint,
+ auto* s = ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Sint,
ast::Access::kWrite);
GlobalVar("test_var", s, Binding(0_a), Group(0_a));
@@ -949,7 +950,7 @@
}
TEST_F(BuilderTest_Type, StorageTexture_Generate_SampledTypeUint_Format_r32uint) {
- auto* s = ty.storage_texture(ast::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
+ auto* s = ty.storage_texture(type::TextureDimension::k2d, ast::TexelFormat::kR32Uint,
ast::Access::kWrite);
GlobalVar("test_var", s, Binding(0_a), Group(0_a));
diff --git a/src/tint/writer/wgsl/generator_impl.cc b/src/tint/writer/wgsl/generator_impl.cc
index f02d96c..a515631 100644
--- a/src/tint/writer/wgsl/generator_impl.cc
+++ b/src/tint/writer/wgsl/generator_impl.cc
@@ -51,6 +51,7 @@
#include "src/tint/ast/workgroup_attribute.h"
#include "src/tint/sem/struct.h"
#include "src/tint/sem/switch_statement.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/utils/math.h"
#include "src/tint/utils/scoped_assignment.h"
#include "src/tint/writer/float_to_string.h"
@@ -500,22 +501,22 @@
}
switch (texture->dim) {
- case ast::TextureDimension::k1d:
+ case type::TextureDimension::k1d:
out << "1d";
break;
- case ast::TextureDimension::k2d:
+ case type::TextureDimension::k2d:
out << "2d";
break;
- case ast::TextureDimension::k2dArray:
+ case type::TextureDimension::k2dArray:
out << "2d_array";
break;
- case ast::TextureDimension::k3d:
+ case type::TextureDimension::k3d:
out << "3d";
break;
- case ast::TextureDimension::kCube:
+ case type::TextureDimension::kCube:
out << "cube";
break;
- case ast::TextureDimension::kCubeArray:
+ case type::TextureDimension::kCubeArray:
out << "cube_array";
break;
default:
diff --git a/src/tint/writer/wgsl/generator_impl_global_decl_test.cc b/src/tint/writer/wgsl/generator_impl_global_decl_test.cc
index 939b5b3..cc331f0 100644
--- a/src/tint/writer/wgsl/generator_impl_global_decl_test.cc
+++ b/src/tint/writer/wgsl/generator_impl_global_decl_test.cc
@@ -15,6 +15,7 @@
#include "src/tint/ast/stage_attribute.h"
#include "src/tint/ast/variable_decl_statement.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/writer/wgsl/test_helper.h"
using namespace tint::number_suffixes; // NOLINT
@@ -116,7 +117,7 @@
}
TEST_F(WgslGeneratorImplTest, Emit_Global_Texture) {
- auto* st = ty.sampled_texture(ast::TextureDimension::k1d, ty.f32());
+ auto* st = ty.sampled_texture(type::TextureDimension::k1d, ty.f32());
GlobalVar("t", st, Group(0_a), Binding(0_a));
GeneratorImpl& gen = Build();
diff --git a/src/tint/writer/wgsl/generator_impl_type_test.cc b/src/tint/writer/wgsl/generator_impl_type_test.cc
index a1c3505..0f0ab27 100644
--- a/src/tint/writer/wgsl/generator_impl_type_test.cc
+++ b/src/tint/writer/wgsl/generator_impl_type_test.cc
@@ -15,6 +15,7 @@
#include "src/tint/type/depth_texture.h"
#include "src/tint/type/multisampled_texture.h"
#include "src/tint/type/sampled_texture.h"
+#include "src/tint/type/texture_dimension.h"
#include "src/tint/writer/wgsl/test_helper.h"
using namespace tint::number_suffixes; // NOLINT
@@ -329,7 +330,7 @@
}
struct TextureData {
- ast::TextureDimension dim;
+ type::TextureDimension dim;
const char* name;
};
inline std::ostream& operator<<(std::ostream& out, TextureData data) {
@@ -353,10 +354,10 @@
INSTANTIATE_TEST_SUITE_P(
WgslGeneratorImplTest,
WgslGenerator_DepthTextureTest,
- testing::Values(TextureData{ast::TextureDimension::k2d, "texture_depth_2d"},
- TextureData{ast::TextureDimension::k2dArray, "texture_depth_2d_array"},
- TextureData{ast::TextureDimension::kCube, "texture_depth_cube"},
- TextureData{ast::TextureDimension::kCubeArray, "texture_depth_cube_array"}));
+ testing::Values(TextureData{type::TextureDimension::k2d, "texture_depth_2d"},
+ TextureData{type::TextureDimension::k2dArray, "texture_depth_2d_array"},
+ TextureData{type::TextureDimension::kCube, "texture_depth_cube"},
+ TextureData{type::TextureDimension::kCubeArray, "texture_depth_cube_array"}));
using WgslGenerator_SampledTextureTest = TestParamHelper<TextureData>;
TEST_P(WgslGenerator_SampledTextureTest, EmitType_SampledTexture_F32) {
@@ -400,12 +401,12 @@
INSTANTIATE_TEST_SUITE_P(
WgslGeneratorImplTest,
WgslGenerator_SampledTextureTest,
- testing::Values(TextureData{ast::TextureDimension::k1d, "texture_1d"},
- TextureData{ast::TextureDimension::k2d, "texture_2d"},
- TextureData{ast::TextureDimension::k2dArray, "texture_2d_array"},
- TextureData{ast::TextureDimension::k3d, "texture_3d"},
- TextureData{ast::TextureDimension::kCube, "texture_cube"},
- TextureData{ast::TextureDimension::kCubeArray, "texture_cube_array"}));
+ testing::Values(TextureData{type::TextureDimension::k1d, "texture_1d"},
+ TextureData{type::TextureDimension::k2d, "texture_2d"},
+ TextureData{type::TextureDimension::k2dArray, "texture_2d_array"},
+ TextureData{type::TextureDimension::k3d, "texture_3d"},
+ TextureData{type::TextureDimension::kCube, "texture_cube"},
+ TextureData{type::TextureDimension::kCubeArray, "texture_cube_array"}));
using WgslGenerator_MultiampledTextureTest = TestParamHelper<TextureData>;
TEST_P(WgslGenerator_MultiampledTextureTest, EmitType_MultisampledTexture_F32) {
@@ -448,12 +449,12 @@
}
INSTANTIATE_TEST_SUITE_P(WgslGeneratorImplTest,
WgslGenerator_MultiampledTextureTest,
- testing::Values(TextureData{ast::TextureDimension::k2d,
+ testing::Values(TextureData{type::TextureDimension::k2d,
"texture_multisampled_2d"}));
struct StorageTextureData {
ast::TexelFormat fmt;
- ast::TextureDimension dim;
+ type::TextureDimension dim;
ast::Access access;
const char* name;
};
@@ -477,14 +478,14 @@
INSTANTIATE_TEST_SUITE_P(
WgslGeneratorImplTest,
WgslGenerator_StorageTextureTest,
- testing::Values(StorageTextureData{ast::TexelFormat::kRgba8Sint, ast::TextureDimension::k1d,
+ testing::Values(StorageTextureData{ast::TexelFormat::kRgba8Sint, type::TextureDimension::k1d,
ast::Access::kWrite, "texture_storage_1d<rgba8sint, write>"},
- StorageTextureData{ast::TexelFormat::kRgba8Sint, ast::TextureDimension::k2d,
+ StorageTextureData{ast::TexelFormat::kRgba8Sint, type::TextureDimension::k2d,
ast::Access::kWrite, "texture_storage_2d<rgba8sint, write>"},
StorageTextureData{ast::TexelFormat::kRgba8Sint,
- ast::TextureDimension::k2dArray, ast::Access::kWrite,
+ type::TextureDimension::k2dArray, ast::Access::kWrite,
"texture_storage_2d_array<rgba8sint, write>"},
- StorageTextureData{ast::TexelFormat::kRgba8Sint, ast::TextureDimension::k3d,
+ StorageTextureData{ast::TexelFormat::kRgba8Sint, type::TextureDimension::k3d,
ast::Access::kWrite,
"texture_storage_3d<rgba8sint, write>"}));