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>
		
			
				
	
	
		
			50 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| ; SPIR-V
 | |
| ; Version: 1.3
 | |
| ; Generator: Google Tint Compiler; 0
 | |
| ; Bound: 23
 | |
| ; Schema: 0
 | |
|                OpCapability Shader
 | |
|                OpMemoryModel Logical GLSL450
 | |
|                OpEntryPoint Fragment %main "main"
 | |
|                OpExecutionMode %main OriginUpperLeft
 | |
|                OpName %data_block "data_block"
 | |
|                OpMemberName %data_block 0 "inner"
 | |
|                OpName %S "S"
 | |
|                OpMemberName %S 0 "matrix"
 | |
|                OpMemberName %S 1 "vector"
 | |
|                OpName %data "data"
 | |
|                OpName %main "main"
 | |
|                OpDecorate %data_block Block
 | |
|                OpMemberDecorate %data_block 0 Offset 0
 | |
|                OpMemberDecorate %S 0 Offset 0
 | |
|                OpMemberDecorate %S 0 ColMajor
 | |
|                OpMemberDecorate %S 0 MatrixStride 16
 | |
|                OpMemberDecorate %S 1 Offset 64
 | |
|                OpDecorate %data NonWritable
 | |
|                OpDecorate %data DescriptorSet 0
 | |
|                OpDecorate %data Binding 0
 | |
|       %float = OpTypeFloat 32
 | |
|     %v3float = OpTypeVector %float 3
 | |
| %mat4v3float = OpTypeMatrix %v3float 4
 | |
|           %S = OpTypeStruct %mat4v3float %v3float
 | |
|  %data_block = OpTypeStruct %S
 | |
| %_ptr_Uniform_data_block = OpTypePointer Uniform %data_block
 | |
|        %data = OpVariable %_ptr_Uniform_data_block Uniform
 | |
|        %void = OpTypeVoid
 | |
|           %8 = OpTypeFunction %void
 | |
|        %uint = OpTypeInt 32 0
 | |
|      %uint_0 = OpConstant %uint 0
 | |
|      %uint_1 = OpConstant %uint 1
 | |
| %_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
 | |
| %_ptr_Uniform_mat4v3float = OpTypePointer Uniform %mat4v3float
 | |
|     %v4float = OpTypeVector %float 4
 | |
|        %main = OpFunction %void None %8
 | |
|          %11 = OpLabel
 | |
|          %16 = OpAccessChain %_ptr_Uniform_v3float %data %uint_0 %uint_1
 | |
|          %17 = OpLoad %v3float %16
 | |
|          %19 = OpAccessChain %_ptr_Uniform_mat4v3float %data %uint_0 %uint_0
 | |
|          %20 = OpLoad %mat4v3float %19
 | |
|          %21 = OpVectorTimesMatrix %v4float %17 %20
 | |
|                OpReturn
 | |
|                OpFunctionEnd
 |