Update StructMember{Offset,Size}Attribute to expressions.

This CL updates the StructMember Offset and Size attributes to
store expressions instead of uint32_t values.

Bug: tint:1633
Change-Id: I771b64fbd27a398ffbcb3f8cc2cbb7fa2606983e
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/101640
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Dan Sinclair <dsinclair@chromium.org>
Auto-Submit: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
dan sinclair
2022-09-09 14:49:09 +00:00
committed by Dawn LUCI CQ
parent f0209f58ea
commit 93df967003
27 changed files with 157 additions and 95 deletions

View File

@@ -73,7 +73,7 @@ void DecomposeStridedArray::Run(CloneContext& ctx, const DataMap&, DataMap&) con
auto* member_ty = ctx.Clone(ast->type);
auto* member = ctx.dst->Member(kMemberName, member_ty,
utils::Vector{
ctx.dst->MemberSize(arr->Stride()),
ctx.dst->MemberSize(AInt(arr->Stride())),
});
ctx.dst->Structure(name, utils::Vector{member});
return name;

View File

@@ -71,7 +71,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadUniformMatrix) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(16u),
b.MemberOffset(16_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -127,7 +127,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadUniformColumn) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(16u),
b.MemberOffset(16_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -180,7 +180,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadUniformMatrix_DefaultStride) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(16u),
b.MemberOffset(16_u),
b.create<ast::StrideAttribute>(8u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -233,7 +233,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadStorageMatrix) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(8u),
b.MemberOffset(8_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -290,7 +290,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadStorageColumn) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(16u),
b.MemberOffset(16_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -344,7 +344,7 @@ TEST_F(DecomposeStridedMatrixTest, WriteStorageMatrix) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(8u),
b.MemberOffset(8_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -402,7 +402,7 @@ TEST_F(DecomposeStridedMatrixTest, WriteStorageColumn) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(8u),
b.MemberOffset(8_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -461,7 +461,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadWriteViaPointerLets) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(8u),
b.MemberOffset(8_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -532,7 +532,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadPrivateMatrix) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(8u),
b.MemberOffset(8_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),
@@ -585,7 +585,7 @@ TEST_F(DecomposeStridedMatrixTest, WritePrivateMatrix) {
"S", utils::Vector{
b.Member("m", b.ty.mat2x2<f32>(),
utils::Vector{
b.create<ast::StructMemberOffsetAttribute>(8u),
b.MemberOffset(8_u),
b.create<ast::StrideAttribute>(32u),
b.Disable(ast::DisabledValidation::kIgnoreStrideAttribute),
}),

View File

@@ -246,9 +246,9 @@ struct Std140::State {
// The matrix was @size() annotated with a larger size than the
// natural size for the matrix. This extra padding needs to be
// applied to the last column vector.
attributes.Push(
b.MemberSize(member->Size() - mat->ColumnType()->Size() *
(num_columns - 1)));
attributes.Push(b.MemberSize(
AInt(member->Size() -
mat->ColumnType()->Size() * (num_columns - 1))));
}
// Build the member