mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-08-15 00:19:21 +00:00
Pull the HLSL transformation out to a standalone transform that can be used by both HLSL and MSL. The new E2E tests do not yet pass for MSL because they produce array assignments, which will be addressed in the next patch. Fixed: tint:826 Change-Id: Idc27c81ad45e3d4ab96d82663927d2fc1384618e Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/52842 Auto-Submit: James Price <jrprice@google.com> Commit-Queue: Ben Clayton <bclayton@google.com> Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com>
88 lines
1.3 KiB
Plaintext
88 lines
1.3 KiB
Plaintext
#include <metal_stdlib>
|
|
|
|
using namespace metal;
|
|
struct tint_symbol_1 {
|
|
float4 value [[color(0)]];
|
|
};
|
|
|
|
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 = {float4(0.0f, 0.0f, 0.0f, 0.0f)};
|
|
return tint_symbol_2;
|
|
}
|
|
|