mirror of
				https://github.com/encounter/dawn-cmake.git
				synced 2025-10-26 03:30: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>
		
			
				
	
	
		
			73 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ; SPIR-V
 | |
| ; Version: 1.3
 | |
| ; Generator: Google Tint Compiler; 0
 | |
| ; Bound: 33
 | |
| ; Schema: 0
 | |
|                OpCapability Shader
 | |
|                OpMemoryModel Logical GLSL450
 | |
|                OpEntryPoint GLCompute %f "f"
 | |
|                OpExecutionMode %f LocalSize 1 1 1
 | |
|                OpName %ubo_block "ubo_block"
 | |
|                OpMemberName %ubo_block 0 "inner"
 | |
|                OpName %UBO "UBO"
 | |
|                OpMemberName %UBO 0 "dynamic_idx"
 | |
|                OpName %ubo "ubo"
 | |
|                OpName %result_block "result_block"
 | |
|                OpMemberName %result_block 0 "inner"
 | |
|                OpName %Result "Result"
 | |
|                OpMemberName %Result 0 "out"
 | |
|                OpName %result "result"
 | |
|                OpName %S "S"
 | |
|                OpMemberName %S 0 "data"
 | |
|                OpName %s "s"
 | |
|                OpName %f "f"
 | |
|                OpDecorate %ubo_block Block
 | |
|                OpMemberDecorate %ubo_block 0 Offset 0
 | |
|                OpMemberDecorate %UBO 0 Offset 0
 | |
|                OpDecorate %ubo NonWritable
 | |
|                OpDecorate %ubo DescriptorSet 0
 | |
|                OpDecorate %ubo Binding 0
 | |
|                OpDecorate %result_block Block
 | |
|                OpMemberDecorate %result_block 0 Offset 0
 | |
|                OpMemberDecorate %Result 0 Offset 0
 | |
|                OpDecorate %result DescriptorSet 0
 | |
|                OpDecorate %result Binding 1
 | |
|                OpMemberDecorate %S 0 Offset 0
 | |
|                OpDecorate %_arr_int_uint_64 ArrayStride 4
 | |
|         %int = OpTypeInt 32 1
 | |
|         %UBO = OpTypeStruct %int
 | |
|   %ubo_block = OpTypeStruct %UBO
 | |
| %_ptr_Uniform_ubo_block = OpTypePointer Uniform %ubo_block
 | |
|         %ubo = OpVariable %_ptr_Uniform_ubo_block Uniform
 | |
|      %Result = OpTypeStruct %int
 | |
| %result_block = OpTypeStruct %Result
 | |
| %_ptr_StorageBuffer_result_block = OpTypePointer StorageBuffer %result_block
 | |
|      %result = OpVariable %_ptr_StorageBuffer_result_block StorageBuffer
 | |
|        %uint = OpTypeInt 32 0
 | |
|     %uint_64 = OpConstant %uint 64
 | |
| %_arr_int_uint_64 = OpTypeArray %int %uint_64
 | |
|           %S = OpTypeStruct %_arr_int_uint_64
 | |
| %_ptr_Private_S = OpTypePointer Private %S
 | |
|          %16 = OpConstantNull %S
 | |
|           %s = OpVariable %_ptr_Private_S Private %16
 | |
|        %void = OpTypeVoid
 | |
|          %17 = OpTypeFunction %void
 | |
|      %uint_0 = OpConstant %uint 0
 | |
| %_ptr_Uniform_int = OpTypePointer Uniform %int
 | |
| %_ptr_Private_int = OpTypePointer Private %int
 | |
|       %int_1 = OpConstant %int 1
 | |
| %_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
 | |
|       %int_3 = OpConstant %int 3
 | |
|           %f = OpFunction %void None %17
 | |
|          %20 = OpLabel
 | |
|          %23 = OpAccessChain %_ptr_Uniform_int %ubo %uint_0 %uint_0
 | |
|          %24 = OpLoad %int %23
 | |
|          %26 = OpAccessChain %_ptr_Private_int %s %uint_0 %24
 | |
|                OpStore %26 %int_1
 | |
|          %29 = OpAccessChain %_ptr_StorageBuffer_int %result %uint_0 %uint_0
 | |
|          %31 = OpAccessChain %_ptr_Private_int %s %uint_0 %int_3
 | |
|          %32 = OpLoad %int %31
 | |
|                OpStore %29 %32
 | |
|                OpReturn
 | |
|                OpFunctionEnd
 |