tint/writer/wgsl: Print @offset attributes as comment
We use WGSL to visualize the AST. Make sure we don't hide anything. Bug: tint:1776 Change-Id: Iedd7ca797fb745d9db7d0aba8a5718039241afbb Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/112602 Reviewed-by: Dan Sinclair <dsinclair@chromium.org> Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Ben Clayton <bclayton@google.com> Auto-Submit: Ben Clayton <bclayton@google.com>
This commit is contained in:
parent
f745e4e2bf
commit
efb17b0254
|
@ -953,7 +953,9 @@ TEST_F(SpvParserMemoryTest, RemapStorageBuffer_TypesAndVarDeclarations) {
|
|||
EXPECT_THAT(module_str, HasSubstr(R"(type RTArr = @stride(4) array<u32>;
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
field0 : u32,
|
||||
/* @offset(4) */
|
||||
field1 : RTArr,
|
||||
}
|
||||
|
||||
|
|
|
@ -1254,8 +1254,11 @@ TEST_F(SpvModuleScopeVarParserTest, StructMember_NonReadableDecoration_Dropped)
|
|||
EXPECT_THAT(module_str, HasSubstr(R"(type Arr = @stride(4) array<u32, 2u>;
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
field0 : u32,
|
||||
/* @offset(4) */
|
||||
field1 : f32,
|
||||
/* @offset(8) */
|
||||
field2 : Arr,
|
||||
}
|
||||
|
||||
|
@ -1286,6 +1289,7 @@ TEST_F(SpvModuleScopeVarParserTest, ColMajorDecoration_Dropped) {
|
|||
EXPECT_TRUE(p->error().empty());
|
||||
const auto module_str = test::ToString(p->program());
|
||||
EXPECT_THAT(module_str, HasSubstr(R"(struct S {
|
||||
/* @offset(0) */
|
||||
field0 : mat3x2<f32>,
|
||||
}
|
||||
|
||||
|
@ -1316,6 +1320,7 @@ TEST_F(SpvModuleScopeVarParserTest, MatrixStrideDecoration_Natural_Dropped) {
|
|||
EXPECT_TRUE(p->error().empty());
|
||||
const auto module_str = test::ToString(p->program());
|
||||
EXPECT_THAT(module_str, HasSubstr(R"(struct S {
|
||||
/* @offset(0) */
|
||||
field0 : mat3x2<f32>,
|
||||
}
|
||||
|
||||
|
@ -1346,6 +1351,7 @@ TEST_F(SpvModuleScopeVarParserTest, MatrixStrideDecoration) {
|
|||
EXPECT_TRUE(p->error().empty());
|
||||
const auto module_str = test::ToString(p->program());
|
||||
EXPECT_THAT(module_str, HasSubstr(R"(struct S {
|
||||
/* @offset(0) */
|
||||
@stride(64) @internal(disable_validation__ignore_stride)
|
||||
field0 : mat3x2<f32>,
|
||||
}
|
||||
|
@ -1399,7 +1405,9 @@ TEST_F(SpvModuleScopeVarParserTest, StorageBuffer_NonWritable_AllMembers) {
|
|||
EXPECT_TRUE(p->error().empty());
|
||||
const auto module_str = test::ToString(p->program());
|
||||
EXPECT_THAT(module_str, HasSubstr(R"(struct S {
|
||||
/* @offset(0) */
|
||||
field0 : f32,
|
||||
/* @offset(4) */
|
||||
field1 : f32,
|
||||
}
|
||||
|
||||
|
@ -1428,7 +1436,9 @@ TEST_F(SpvModuleScopeVarParserTest, StorageBuffer_NonWritable_NotAllMembers) {
|
|||
EXPECT_TRUE(p->error().empty());
|
||||
const auto module_str = test::ToString(p->program());
|
||||
EXPECT_THAT(module_str, HasSubstr(R"(struct S {
|
||||
/* @offset(0) */
|
||||
field0 : f32,
|
||||
/* @offset(4) */
|
||||
field1 : f32,
|
||||
}
|
||||
|
||||
|
@ -1459,7 +1469,9 @@ TEST_F(SpvModuleScopeVarParserTest,
|
|||
EXPECT_TRUE(p->error().empty());
|
||||
const auto module_str = test::ToString(p->program());
|
||||
EXPECT_THAT(module_str, HasSubstr(R"(struct S {
|
||||
/* @offset(0) */
|
||||
field0 : f32,
|
||||
/* @offset(4) */
|
||||
field1 : f32,
|
||||
}
|
||||
|
||||
|
|
|
@ -90,6 +90,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadUniformMatrix) {
|
|||
struct S {
|
||||
@size(16)
|
||||
padding : u32,
|
||||
/* @offset(16) */
|
||||
m : @stride(32) array<vec2<f32>, 2u>,
|
||||
}
|
||||
|
||||
|
@ -147,6 +148,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadUniformColumn) {
|
|||
struct S {
|
||||
@size(16)
|
||||
padding : u32,
|
||||
/* @offset(16) */
|
||||
m : @stride(32) array<vec2<f32>, 2u>,
|
||||
}
|
||||
|
||||
|
@ -199,6 +201,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadUniformMatrix_DefaultStride) {
|
|||
struct S {
|
||||
@size(16)
|
||||
padding : u32,
|
||||
/* @offset(16u) */
|
||||
@stride(8) @internal(disable_validation__ignore_stride)
|
||||
m : mat2x2<f32>,
|
||||
}
|
||||
|
@ -253,6 +256,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadStorageMatrix) {
|
|||
struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8) */
|
||||
m : @stride(32) array<vec2<f32>, 2u>,
|
||||
}
|
||||
|
||||
|
@ -311,6 +315,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadStorageColumn) {
|
|||
struct S {
|
||||
@size(16)
|
||||
padding : u32,
|
||||
/* @offset(16) */
|
||||
m : @stride(32) array<vec2<f32>, 2u>,
|
||||
}
|
||||
|
||||
|
@ -365,6 +370,7 @@ TEST_F(DecomposeStridedMatrixTest, WriteStorageMatrix) {
|
|||
struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8) */
|
||||
m : @stride(32) array<vec2<f32>, 2u>,
|
||||
}
|
||||
|
||||
|
@ -422,6 +428,7 @@ TEST_F(DecomposeStridedMatrixTest, WriteStorageColumn) {
|
|||
struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8) */
|
||||
m : @stride(32) array<vec2<f32>, 2u>,
|
||||
}
|
||||
|
||||
|
@ -487,6 +494,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadWriteViaPointerLets) {
|
|||
struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8) */
|
||||
m : @stride(32) array<vec2<f32>, 2u>,
|
||||
}
|
||||
|
||||
|
@ -551,6 +559,7 @@ TEST_F(DecomposeStridedMatrixTest, ReadPrivateMatrix) {
|
|||
struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8u) */
|
||||
@stride(32) @internal(disable_validation__ignore_stride)
|
||||
m : mat2x2<f32>,
|
||||
}
|
||||
|
@ -605,6 +614,7 @@ TEST_F(DecomposeStridedMatrixTest, WritePrivateMatrix) {
|
|||
struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8u) */
|
||||
@stride(32) @internal(disable_validation__ignore_stride)
|
||||
m : mat2x2<f32>,
|
||||
}
|
||||
|
|
|
@ -623,7 +623,14 @@ bool GeneratorImpl::EmitStructType(const ast::Struct* str) {
|
|||
utils::Vector<const ast::Attribute*, 4> attributes_sanitized;
|
||||
attributes_sanitized.Reserve(mem->attributes.Length());
|
||||
for (auto* attr : mem->attributes) {
|
||||
if (!attr->Is<ast::StructMemberOffsetAttribute>()) {
|
||||
if (attr->Is<ast::StructMemberOffsetAttribute>()) {
|
||||
auto l = line();
|
||||
l << "/* ";
|
||||
if (!EmitAttributes(l, utils::Vector{attr})) {
|
||||
return false;
|
||||
}
|
||||
l << " */";
|
||||
} else {
|
||||
attributes_sanitized.Push(attr);
|
||||
}
|
||||
}
|
||||
|
@ -792,6 +799,14 @@ bool GeneratorImpl::EmitAttributes(std::ostream& out,
|
|||
out << ")";
|
||||
return true;
|
||||
},
|
||||
[&](const ast::StructMemberOffsetAttribute* offset) {
|
||||
out << "offset(";
|
||||
if (!EmitExpression(out, offset->expr)) {
|
||||
return false;
|
||||
}
|
||||
out << ")";
|
||||
return true;
|
||||
},
|
||||
[&](const ast::StructMemberSizeAttribute* size) {
|
||||
out << "size(";
|
||||
if (!EmitExpression(out, size->expr)) {
|
||||
|
|
|
@ -188,9 +188,11 @@ TEST_F(WgslGeneratorImplTest, EmitType_StructOffsetDecl) {
|
|||
EXPECT_EQ(gen.result(), R"(struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8) */
|
||||
a : i32,
|
||||
@size(4)
|
||||
padding_1 : u32,
|
||||
/* @offset(16) */
|
||||
b : f32,
|
||||
}
|
||||
)");
|
||||
|
@ -209,9 +211,11 @@ TEST_F(WgslGeneratorImplTest, EmitType_StructOffsetDecl_WithSymbolCollisions) {
|
|||
EXPECT_EQ(gen.result(), R"(struct S {
|
||||
@size(8)
|
||||
padding : u32,
|
||||
/* @offset(8) */
|
||||
tint_0_padding : i32,
|
||||
@size(4)
|
||||
padding_1 : u32,
|
||||
/* @offset(16) */
|
||||
tint_2_padding : f32,
|
||||
}
|
||||
)");
|
||||
|
|
|
@ -15,6 +15,7 @@ struct strided_arr_1 {
|
|||
type Arr_2 = array<strided_arr_1, 4u>;
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
a : Arr_2,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
struct buf0 {
|
||||
/* @offset(0) */
|
||||
r : vec4<f32>,
|
||||
}
|
||||
|
||||
|
|
|
@ -8,11 +8,15 @@ struct strided_arr {
|
|||
type Arr_1 = array<strided_arr, 4u>;
|
||||
|
||||
struct LeftOver {
|
||||
/* @offset(0) */
|
||||
worldViewProjection : mat4x4<f32>,
|
||||
/* @offset(64) */
|
||||
time : f32,
|
||||
@size(12)
|
||||
padding : u32,
|
||||
/* @offset(80) */
|
||||
test2 : Arr,
|
||||
/* @offset(208) */
|
||||
test : Arr_1,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,11 +1,15 @@
|
|||
struct UniformBuffer {
|
||||
@size(16)
|
||||
padding : u32,
|
||||
/* @offset(16) */
|
||||
unknownInput_S1_c0 : f32,
|
||||
@size(12)
|
||||
padding_1 : u32,
|
||||
/* @offset(32) */
|
||||
ucolorRed_S1_c0 : vec4<f32>,
|
||||
/* @offset(48) */
|
||||
ucolorGreen_S1_c0 : vec4<f32>,
|
||||
/* @offset(64) */
|
||||
umatrix_S1 : mat3x3<f32>,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,18 @@
|
|||
type Arr = array<i32, 6u>;
|
||||
|
||||
struct sspp962805860buildInformationS {
|
||||
/* @offset(0) */
|
||||
footprint : vec4<f32>,
|
||||
/* @offset(16) */
|
||||
offset : vec4<f32>,
|
||||
/* @offset(32) */
|
||||
essence : i32,
|
||||
/* @offset(36) */
|
||||
orientation : Arr,
|
||||
}
|
||||
|
||||
struct x_B4_BuildInformation {
|
||||
/* @offset(0) */
|
||||
passthru : sspp962805860buildInformationS,
|
||||
}
|
||||
|
||||
|
|
|
@ -3,22 +3,28 @@ type RTArr = array<f32>;
|
|||
type RTArr_1 = array<f32>;
|
||||
|
||||
struct ResultMatrix {
|
||||
/* @offset(0) */
|
||||
numbers : RTArr_1,
|
||||
}
|
||||
|
||||
type RTArr_2 = array<f32>;
|
||||
|
||||
struct FirstMatrix {
|
||||
/* @offset(0) */
|
||||
numbers : RTArr_1,
|
||||
}
|
||||
|
||||
struct SecondMatrix {
|
||||
/* @offset(0) */
|
||||
numbers : RTArr_1,
|
||||
}
|
||||
|
||||
struct Uniforms {
|
||||
/* @offset(0) */
|
||||
NAN : f32,
|
||||
/* @offset(4) */
|
||||
sizeA : i32,
|
||||
/* @offset(8) */
|
||||
sizeB : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
struct S_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : atomic<u32>,
|
||||
/* @offset(8) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : u32,
|
||||
/* @offset(8) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
struct S_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : atomic<u32>,
|
||||
/* @offset(8) */
|
||||
b : atomic<u32>,
|
||||
}
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : u32,
|
||||
/* @offset(8) */
|
||||
b : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
struct S_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : atomic<u32>,
|
||||
/* @offset(8) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : u32,
|
||||
/* @offset(8) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,42 +1,66 @@
|
|||
struct S0_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : atomic<u32>,
|
||||
/* @offset(8) */
|
||||
y : i32,
|
||||
/* @offset(12) */
|
||||
z : i32,
|
||||
}
|
||||
|
||||
struct S0 {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : u32,
|
||||
/* @offset(8) */
|
||||
y : i32,
|
||||
/* @offset(12) */
|
||||
z : i32,
|
||||
}
|
||||
|
||||
struct S1_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : S0_atomic,
|
||||
/* @offset(20) */
|
||||
y : i32,
|
||||
/* @offset(24) */
|
||||
z : i32,
|
||||
}
|
||||
|
||||
struct S1 {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : S0,
|
||||
/* @offset(20) */
|
||||
y : i32,
|
||||
/* @offset(24) */
|
||||
z : i32,
|
||||
}
|
||||
|
||||
struct S2_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
y : i32,
|
||||
/* @offset(8) */
|
||||
z : i32,
|
||||
/* @offset(12) */
|
||||
a : S1_atomic,
|
||||
}
|
||||
|
||||
struct S2 {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
y : i32,
|
||||
/* @offset(8) */
|
||||
z : i32,
|
||||
/* @offset(12) */
|
||||
a : S1,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,20 @@
|
|||
type Arr = array<u32, 10u>;
|
||||
|
||||
struct S_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : array<atomic<u32>, 10u>,
|
||||
/* @offset(44) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : Arr,
|
||||
/* @offset(44) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
struct S_atomic {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : atomic<u32>,
|
||||
/* @offset(8) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
struct S {
|
||||
/* @offset(0) */
|
||||
x : i32,
|
||||
/* @offset(4) */
|
||||
a : u32,
|
||||
/* @offset(8) */
|
||||
y : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
struct x__atomic_compare_exchange_resulti32 {
|
||||
/* @offset(0) */
|
||||
old_value : i32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
struct x__atomic_compare_exchange_resultu32 {
|
||||
/* @offset(0) */
|
||||
old_value : u32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
struct x__atomic_compare_exchange_resulti32 {
|
||||
/* @offset(0) */
|
||||
old_value : i32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
struct x__atomic_compare_exchange_resultu32 {
|
||||
/* @offset(0) */
|
||||
old_value : u32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
struct x__atomic_compare_exchange_resulti32 {
|
||||
/* @offset(0) */
|
||||
old_value : i32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +1,17 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
struct x__atomic_compare_exchange_resultu32 {
|
||||
/* @offset(0) */
|
||||
old_value : u32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
struct x__atomic_compare_exchange_resulti32 {
|
||||
/* @offset(0) */
|
||||
old_value : i32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
struct x__atomic_compare_exchange_resultu32 {
|
||||
/* @offset(0) */
|
||||
old_value : u32,
|
||||
/* @offset(4) */
|
||||
exchanged : bool,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<i32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : i32,
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
struct SB_RW_atomic {
|
||||
/* @offset(0) */
|
||||
arg_0 : atomic<u32>,
|
||||
}
|
||||
|
||||
struct SB_RW {
|
||||
/* @offset(0) */
|
||||
arg_0 : u32,
|
||||
}
|
||||
|
||||
|
|
|
@ -4,6 +4,7 @@ struct strided_arr {
|
|||
}
|
||||
|
||||
struct SSBO {
|
||||
/* @offset(0) */
|
||||
m : array<strided_arr, 2u>,
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue