Zhaoming Jiang ab9b5f3aa5 Tint: Implement f16 in uniform and storage address space
This CL implements f16 in uniform and storage address space, allowing
using f16 types in uniform and storage buffers on all backends. Tint
uint tests and Dawn E2E tests are added to validate the f16 types work
as expected.

Bug: tint:1473, tint:1502
Change-Id: I15e3de1033d3727f2ea33f4657f682c5f13c2153
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/106320
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
2022-11-24 05:25:35 +00:00

39 lines
664 B
GLSL

#version 310 es
#extension GL_AMD_gpu_shader_half_float : require
precision mediump float;
struct S {
f16mat3x2 matrix;
uint pad;
f16vec3 vector;
uint pad_1;
uint pad_2;
};
struct S_std140 {
f16vec2 matrix_0;
f16vec2 matrix_1;
f16vec2 matrix_2;
uint pad;
f16vec3 vector;
uint pad_1;
uint pad_2;
};
layout(binding = 0, std140) uniform data_block_std140_ubo {
S_std140 inner;
} data;
f16mat3x2 load_data_inner_matrix() {
return f16mat3x2(data.inner.matrix_0, data.inner.matrix_1, data.inner.matrix_2);
}
void tint_symbol() {
f16vec2 x = (load_data_inner_matrix() * data.inner.vector);
}
void main() {
tint_symbol();
return;
}