mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-12-16 16:37:08 +00:00
Validate storage class constraints
As defined by https://gpuweb.github.io/gpuweb/wgsl/#storage-class-layout-constraints Bug: tint:643 Change-Id: I9c78ba69a792a80c263a17b0a6e9b4810fdb7f30 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/56780 Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
This commit is contained in:
committed by
Tint LUCI CQ
parent
88b8e2f289
commit
fd5829e5ea
@@ -2239,11 +2239,14 @@ TEST_F(InspectorGetUniformBufferResourceBindingsTest, MultipleUniformBuffers) {
|
||||
}
|
||||
|
||||
TEST_F(InspectorGetUniformBufferResourceBindingsTest, ContainingArray) {
|
||||
// TODO(bclayton) - This is not a legal structure layout for uniform buffer
|
||||
// usage. Once crbug.com/tint/628 is implemented, this will fail validation
|
||||
// and will need to be fixed.
|
||||
ast::Struct* foo_struct_type =
|
||||
MakeUniformBufferType("foo_type", {ty.i32(), ty.array<u32, 4>()});
|
||||
// Manually create uniform buffer to make sure it had a valid layout (array
|
||||
// with elem stride of 16, and that is 16-byte aligned within the struct)
|
||||
ast::Struct* foo_struct_type = Structure(
|
||||
"foo_type",
|
||||
{Member("0__i32", ty.i32()),
|
||||
Member("b", ty.array(ty.u32(), 4, /*stride*/ 16), {MemberAlign(16)})},
|
||||
{create<ast::StructBlockDecoration>()});
|
||||
|
||||
AddUniformBuffer("foo_ub", ty.Of(foo_struct_type), 0, 0);
|
||||
|
||||
MakeStructVariableReferenceBodyFunction("ub_func", "foo_ub", {{0, ty.i32()}});
|
||||
@@ -2263,8 +2266,8 @@ TEST_F(InspectorGetUniformBufferResourceBindingsTest, ContainingArray) {
|
||||
result[0].resource_type);
|
||||
EXPECT_EQ(0u, result[0].bind_group);
|
||||
EXPECT_EQ(0u, result[0].binding);
|
||||
EXPECT_EQ(20u, result[0].size);
|
||||
EXPECT_EQ(20u, result[0].size_no_padding);
|
||||
EXPECT_EQ(80u, result[0].size);
|
||||
EXPECT_EQ(80u, result[0].size_no_padding);
|
||||
}
|
||||
|
||||
TEST_F(InspectorGetStorageBufferResourceBindingsTest, Simple) {
|
||||
|
||||
Reference in New Issue
Block a user