mirror of
				https://github.com/encounter/dawn-cmake.git
				synced 2025-10-27 12:10:29 +00:00 
			
		
		
		
	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>
		
			
				
	
	
		
			38 lines
		
	
	
		
			677 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			677 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 310 es
 | |
| #extension GL_AMD_gpu_shader_half_float : require
 | |
| precision mediump float;
 | |
| 
 | |
| struct S {
 | |
|   f16mat4x3 matrix;
 | |
|   f16vec3 vector;
 | |
|   uint pad;
 | |
|   uint pad_1;
 | |
| };
 | |
| 
 | |
| struct S_std140 {
 | |
|   f16vec3 matrix_0;
 | |
|   f16vec3 matrix_1;
 | |
|   f16vec3 matrix_2;
 | |
|   f16vec3 matrix_3;
 | |
|   f16vec3 vector;
 | |
|   uint pad;
 | |
|   uint pad_1;
 | |
| };
 | |
| 
 | |
| layout(binding = 0, std140) uniform data_block_std140_ubo {
 | |
|   S_std140 inner;
 | |
| } data;
 | |
| 
 | |
| f16mat4x3 load_data_inner_matrix() {
 | |
|   return f16mat4x3(data.inner.matrix_0, data.inner.matrix_1, data.inner.matrix_2, data.inner.matrix_3);
 | |
| }
 | |
| 
 | |
| void tint_symbol() {
 | |
|   f16vec4 x = (data.inner.vector * load_data_inner_matrix());
 | |
| }
 | |
| 
 | |
| void main() {
 | |
|   tint_symbol();
 | |
|   return;
 | |
| }
 |