mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-05-14 19:31:25 +00:00
This fixes constructors for structures that contain padding members due to explicit layout attributes. Also fix one test that was wrongly using an identity type constructor for a structure. Fixed: tint:853 Change-Id: I0a3e84fcd7c6a7f2ad92a4970ed11378e6ce2465 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/53240 Auto-Submit: James Price <jrprice@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: James Price <jrprice@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
114 lines
1.7 KiB
Plaintext
114 lines
1.7 KiB
Plaintext
#include <metal_stdlib>
|
|
|
|
using namespace metal;
|
|
struct tint_symbol_1 {
|
|
float4 value [[color(0)]];
|
|
};
|
|
|
|
void bitwise_i32() {
|
|
int s1 = 0;
|
|
int s2 = 0;
|
|
int3 v1 = 0;
|
|
int3 v2 = 0;
|
|
s1 = (s1 | s2);
|
|
s1 = (s1 & s2);
|
|
s1 = (s1 ^ s2);
|
|
v1 = (v1 | v2);
|
|
v1 = (v1 & v2);
|
|
v1 = (v1 ^ v2);
|
|
}
|
|
|
|
void bitwise_u32() {
|
|
uint s1 = 0u;
|
|
uint s2 = 0u;
|
|
uint3 v1 = 0u;
|
|
uint3 v2 = 0u;
|
|
s1 = (s1 | s2);
|
|
s1 = (s1 & s2);
|
|
s1 = (s1 ^ s2);
|
|
v1 = (v1 | v2);
|
|
v1 = (v1 & v2);
|
|
v1 = (v1 ^ v2);
|
|
}
|
|
|
|
void vector_scalar_f32() {
|
|
float3 v = 0.0f;
|
|
float s = 0.0f;
|
|
float3 r = 0.0f;
|
|
r = (v + s);
|
|
r = (v - s);
|
|
r = (v * s);
|
|
r = (v / s);
|
|
}
|
|
|
|
void vector_scalar_i32() {
|
|
int3 v = 0;
|
|
int s = 0;
|
|
int3 r = 0;
|
|
r = (v + s);
|
|
r = (v - s);
|
|
r = (v * s);
|
|
r = (v / s);
|
|
r = (v % s);
|
|
}
|
|
|
|
void vector_scalar_u32() {
|
|
uint3 v = 0u;
|
|
uint s = 0u;
|
|
uint3 r = 0u;
|
|
r = (v + s);
|
|
r = (v - s);
|
|
r = (v * s);
|
|
r = (v / s);
|
|
r = (v % s);
|
|
}
|
|
|
|
void scalar_vector_f32() {
|
|
float3 v = 0.0f;
|
|
float s = 0.0f;
|
|
float3 r = 0.0f;
|
|
r = (s + v);
|
|
r = (s - v);
|
|
r = (s * v);
|
|
r = (s / v);
|
|
}
|
|
|
|
void scalar_vector_i32() {
|
|
int3 v = 0;
|
|
int s = 0;
|
|
int3 r = 0;
|
|
r = (s + v);
|
|
r = (s - v);
|
|
r = (s * v);
|
|
r = (s / v);
|
|
r = (s % v);
|
|
}
|
|
|
|
void scalar_vector_u32() {
|
|
uint3 v = 0u;
|
|
uint s = 0u;
|
|
uint3 r = 0u;
|
|
r = (s + v);
|
|
r = (s - v);
|
|
r = (s * v);
|
|
r = (s / v);
|
|
r = (s % v);
|
|
}
|
|
|
|
void matrix_matrix_f32() {
|
|
float3x4 m34 = float3x4(0.0f);
|
|
float4x3 m43 = float4x3(0.0f);
|
|
float3x3 m33 = float3x3(0.0f);
|
|
float4x4 m44 = float4x4(0.0f);
|
|
m34 = (m34 + m34);
|
|
m34 = (m34 - m34);
|
|
m33 = (m43 * m34);
|
|
m44 = (m34 * m43);
|
|
}
|
|
|
|
fragment tint_symbol_1 tint_symbol() {
|
|
tint_symbol_1 const tint_symbol_2 = {.value=float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
return tint_symbol_2;
|
|
}
|
|
|