mirror of
				https://github.com/encounter/dawn-cmake.git
				synced 2025-10-25 19:20:30 +00:00 
			
		
		
		
	This CL make transform AddBlockAttribute always try to wrap types used by buffer variables into a struct, in order to generate valid GLSL code for assigning one buffer struct variable to another buffer struct variable. Fixed: tint:1735 Change-Id: I009d8a9ca7ecea1dc0ad6164275c964a18acb33f Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/108023 Kokoro: Kokoro <noreply+kokoro@google.com> Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Zhaoming Jiang <zhaoming.jiang@intel.com>
		
			
				
	
	
		
			36 lines
		
	
	
		
			702 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			702 B
		
	
	
	
		
			GLSL
		
	
	
	
	
	
| #version 310 es
 | |
| 
 | |
| struct UBO {
 | |
|   int dynamic_idx;
 | |
|   uint pad;
 | |
|   uint pad_1;
 | |
|   uint pad_2;
 | |
| };
 | |
| 
 | |
| layout(binding = 0, std140) uniform ubo_block_ubo {
 | |
|   UBO inner;
 | |
| } ubo;
 | |
| 
 | |
| struct S {
 | |
|   int data[64];
 | |
| };
 | |
| 
 | |
| struct Result {
 | |
|   int tint_symbol;
 | |
| };
 | |
| 
 | |
| layout(binding = 1, std430) buffer result_block_ssbo {
 | |
|   Result inner;
 | |
| } result;
 | |
| 
 | |
| void f() {
 | |
|   S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
 | |
|   result.inner.tint_symbol = s.data[ubo.inner.dynamic_idx];
 | |
| }
 | |
| 
 | |
| layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
 | |
| void main() {
 | |
|   f();
 | |
|   return;
 | |
| }
 |