mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-16 00:17:03 +00:00
sem: Fold together sem::Array and sem::ArrayType
There's now no need to have both. Removes a whole bunch of Sem().Get() smell, and simplifies the resolver. Also fixes a long-standing issue where an array with an explicit, but equal-to-implicit-stride attribute would result in a different type to an array without the decoration. Bug: tint:724 Fixed: tint:782 Change-Id: I0202459009cd45be427cdb621993a5a3b07ff51e Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/50301 Reviewed-by: Antonio Maiorano <amaiorano@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Commit Bot service account
parent
6732e8561c
commit
4cd5eea87e
@@ -24,7 +24,7 @@
|
||||
#include "src/ast/sint_literal.h"
|
||||
#include "src/ast/uint_literal.h"
|
||||
#include "src/sem/access_control_type.h"
|
||||
#include "src/sem/array_type.h"
|
||||
#include "src/sem/array.h"
|
||||
#include "src/sem/f32_type.h"
|
||||
#include "src/sem/function.h"
|
||||
#include "src/sem/i32_type.h"
|
||||
@@ -76,13 +76,13 @@ TypeTextureDimensionToResourceBindingTextureDimension(
|
||||
return ResourceBinding::TextureDimension::kNone;
|
||||
}
|
||||
|
||||
ResourceBinding::SampledKind BaseTypeToSampledKind(sem::Type* base_type) {
|
||||
ResourceBinding::SampledKind BaseTypeToSampledKind(const sem::Type* base_type) {
|
||||
if (!base_type) {
|
||||
return ResourceBinding::SampledKind::kUnknown;
|
||||
}
|
||||
|
||||
if (auto* at = base_type->As<sem::ArrayType>()) {
|
||||
base_type = at->type();
|
||||
if (auto* at = base_type->As<sem::Array>()) {
|
||||
base_type = const_cast<sem::Type*>(at->ElemType());
|
||||
} else if (auto* mt = base_type->As<sem::Matrix>()) {
|
||||
base_type = mt->type();
|
||||
} else if (auto* vt = base_type->As<sem::Vector>()) {
|
||||
@@ -650,7 +650,7 @@ std::vector<ResourceBinding> Inspector::GetSampledTextureResourceBindingsImpl(
|
||||
entry.dim = TypeTextureDimensionToResourceBindingTextureDimension(
|
||||
texture_type->dim());
|
||||
|
||||
sem::Type* base_type = nullptr;
|
||||
const sem::Type* base_type = nullptr;
|
||||
if (multisampled_only) {
|
||||
base_type = texture_type->As<sem::MultisampledTexture>()
|
||||
->type()
|
||||
@@ -702,7 +702,7 @@ std::vector<ResourceBinding> Inspector::GetStorageTextureResourceBindingsImpl(
|
||||
entry.dim = TypeTextureDimensionToResourceBindingTextureDimension(
|
||||
texture_type->dim());
|
||||
|
||||
sem::Type* base_type = texture_type->type()->UnwrapIfNeeded();
|
||||
auto* base_type = texture_type->type()->UnwrapIfNeeded();
|
||||
entry.sampled_kind = BaseTypeToSampledKind(base_type);
|
||||
entry.image_format = TypeImageFormatToResourceBindingImageFormat(
|
||||
texture_type->image_format());
|
||||
|
||||
Reference in New Issue
Block a user