tint: IntrinsicTable: Add abstract numeric types
These aren't used by anything (yet). Baby steps. Bug: tint:1504 Change-Id: Icf0261ec9c6802f004d9f1bc4780a6376ebb8dfb Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90530 Reviewed-by: David Neto <dneto@google.com> Commit-Queue: Ben Clayton <bclayton@chromium.org>
This commit is contained in:
parent
b1fa457ab3
commit
6ac00ed0c0
|
@ -71,6 +71,8 @@ enum texel_format {
|
||||||
|
|
||||||
// https://gpuweb.github.io/gpuweb/wgsl/#plain-types-section
|
// https://gpuweb.github.io/gpuweb/wgsl/#plain-types-section
|
||||||
type bool
|
type bool
|
||||||
|
[[precedence(4), display("abstract-float")]] type af
|
||||||
|
[[precedence(3), display("abstract-int")]] type ai
|
||||||
[[precedence(2)]] type i32
|
[[precedence(2)]] type i32
|
||||||
[[precedence(1)]] type u32
|
[[precedence(1)]] type u32
|
||||||
[[precedence(0)]] type f32
|
[[precedence(0)]] type f32
|
||||||
|
@ -126,6 +128,7 @@ match fiu32: f32 | i32 | u32
|
||||||
match fi32: f32 | i32
|
match fi32: f32 | i32
|
||||||
match iu32: i32 | u32
|
match iu32: i32 | u32
|
||||||
match scalar: f32 | i32 | u32 | bool
|
match scalar: f32 | i32 | u32 | bool
|
||||||
|
match abstract_or_scalar: ai | af | f32 | i32 | u32 | bool
|
||||||
match scalar_no_f32: i32 | u32 | bool
|
match scalar_no_f32: i32 | u32 | bool
|
||||||
match scalar_no_i32: f32 | u32 | bool
|
match scalar_no_i32: f32 | u32 | bool
|
||||||
match scalar_no_u32: f32 | i32 | bool
|
match scalar_no_u32: f32 | i32 | bool
|
||||||
|
|
|
@ -326,6 +326,22 @@ bool match_bool(const sem::Type* ty) {
|
||||||
return ty->IsAnyOf<Any, sem::Bool>();
|
return ty->IsAnyOf<Any, sem::Bool>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const sem::AbstractFloat* build_af(MatchState& state) {
|
||||||
|
return state.builder.create<sem::AbstractFloat>();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool match_af(const sem::Type* ty) {
|
||||||
|
return ty->IsAnyOf<Any, sem::AbstractFloat>();
|
||||||
|
}
|
||||||
|
|
||||||
|
const sem::AbstractInt* build_ai(MatchState& state) {
|
||||||
|
return state.builder.create<sem::AbstractInt>();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool match_ai(const sem::Type* ty) {
|
||||||
|
return ty->IsAnyOf<Any, sem::AbstractInt>();
|
||||||
|
}
|
||||||
|
|
||||||
const sem::Bool* build_bool(MatchState& state) {
|
const sem::Bool* build_bool(MatchState& state) {
|
||||||
return state.builder.create<sem::Bool>();
|
return state.builder.create<sem::Bool>();
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -331,6 +331,8 @@ func validate(fqn sem.FullyQualifiedName, uses *sem.StageUses) bool {
|
||||||
strings.Contains(elTyName, "sampler"),
|
strings.Contains(elTyName, "sampler"),
|
||||||
strings.Contains(elTyName, "texture"):
|
strings.Contains(elTyName, "texture"):
|
||||||
return false // Not storable
|
return false // Not storable
|
||||||
|
case elTyName == "af" || elTyName == "ai":
|
||||||
|
return false // Abstract types are not typeable nor supported by arrays
|
||||||
}
|
}
|
||||||
case "ptr":
|
case "ptr":
|
||||||
// https://gpuweb.github.io/gpuweb/wgsl/#storage-class
|
// https://gpuweb.github.io/gpuweb/wgsl/#storage-class
|
||||||
|
|
Loading…
Reference in New Issue