Henri Verbeet 
							
						 
					 
					
						
						
							
						
						f3c7d2d05c 
					 
					
						
						
							
							vkd3d-shader/ir: Store the block count in struct vsir_program.  
						
						
						
						
					 
					
						2024-01-23 20:27:34 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						de9725b6ba 
					 
					
						
						
							
							vkd3d-shader/ir: Remove DCL_TEMPS instructions.  
						
						... 
						
						
						
						We have to do work to keep it updated across passes and we never read it. 
						
						
					 
					
						2024-01-23 20:26:38 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						4b869f73bb 
					 
					
						
						
							
							vkd3d-shader/ir: Run tracing and validation for DXIL code too.  
						
						
						
						
					 
					
						2024-01-23 20:26:36 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						6df725718a 
					 
					
						
						
							
							vkd3d-shader/ir: Refactor return code checking in vkd3d_shader_normalise().  
						
						... 
						
						
						
						We started with only one or two of these but it has become excessive.
Patch originally written by Conor McCarthy and updated by Giovanni Mascellani. 
						
						
					 
					
						2024-01-23 20:26:34 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						232b2ad360 
					 
					
						
						
							
							vkd3d-shader/ir: Validate PHI instructions.  
						
						
						
						
					 
					
						2024-01-23 20:26:08 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						56f9057985 
					 
					
						
						
							
							vkd3d-shader/ir: Do not allow IMMCONST and IMMCONST64 as destination registers.  
						
						
						
						
					 
					
						2024-01-23 20:26:06 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						21633fcc52 
					 
					
						
						
							
							vkd3d-shader/ir: Refactor register-type-specific code in parameter validation.  
						
						... 
						
						
						
						To better accommodate code for other register types. 
						
						
					 
					
						2024-01-23 20:26:05 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						fb6409bda1 
					 
					
						
						
							
							vkd3d-shader/ir: Check that all instructions appear in a block.  
						
						
						
						
					 
					
						2024-01-23 20:26:03 +01:00 
						 
				 
			
				
					
						
							
							
								Henri Verbeet 
							
						 
					 
					
						
						
							
						
						adc02eada8 
					 
					
						
						
							
							vkd3d-shader/ir: Store the temporary register count in struct vsir_program.  
						
						
						
						
					 
					
						2024-01-22 22:18:53 +01:00 
						 
				 
			
				
					
						
							
							
								Henri Verbeet 
							
						 
					 
					
						
						
							
						
						94ca46916a 
					 
					
						
						
							
							vkd3d-shader/ir: Store the SSA register count in struct vsir_program.  
						
						
						
						
					 
					
						2024-01-22 22:18:52 +01:00 
						 
				 
			
				
					
						
							
							
								Henri Verbeet 
							
						 
					 
					
						
						
							
						
						7b85cd6a31 
					 
					
						
						
							
							vkd3d-shader/ir: Store the "use_vocp" field in struct vsir_program.  
						
						
						
						
					 
					
						2024-01-22 22:18:51 +01:00 
						 
				 
			
				
					
						
							
							
								Henri Verbeet 
							
						 
					 
					
						
						
							
						
						23dcd4f22b 
					 
					
						
						
							
							vkd3d-shader/ir: Store the shader version in struct vsir_program.  
						
						
						
						
					 
					
						2024-01-22 22:18:50 +01:00 
						 
				 
			
				
					
						
							
							
								Henri Verbeet 
							
						 
					 
					
						
						
							
						
						fc9043be3c 
					 
					
						
						
							
							vkd3d-shader/ir: Introduce struct vsir_program.  
						
						
						
						
					 
					
						2024-01-22 22:18:48 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						67902d4304 
					 
					
						
						
							
							vkd3d-shader/ir: Validate RET instructions.  
						
						
						
						
					 
					
						2024-01-18 23:15:58 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						af96730276 
					 
					
						
						
							
							vkd3d-shader/ir: Validate SWITCH_MONOLITHIC instructions.  
						
						
						
						
					 
					
						2024-01-18 23:15:57 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						46ebb404d7 
					 
					
						
						
							
							vkd3d-shader/ir: Validate BRANCH instructions.  
						
						
						
						
					 
					
						2024-01-18 23:15:56 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						bc9db34cdc 
					 
					
						
						
							
							vkd3d-shader/ir: Validate LABEL instructions.  
						
						
						
						
					 
					
						2024-01-18 23:15:55 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						dd1b2feec0 
					 
					
						
						
							
							vkd3d-shader/ir: Validate LABEL registers.  
						
						
						
						
					 
					
						2024-01-18 23:15:54 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						17f4afc2b5 
					 
					
						
						
							
							vkd3d-shader/ir: Validate that structured CF does not appear in block-based shaders.  
						
						
						
						
					 
					
						2024-01-18 23:15:53 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						83851133c5 
					 
					
						
						
							
							vkd3d-shader/ir: Set merged signature element interpolation mode only from used elements.  
						
						
						
						
					 
					
						2024-01-18 23:15:27 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						b8280e4210 
					 
					
						
						
							
							vkd3d-shader/ir: Revert "Do not merge signature elements which have different interpolation modes.".  
						
						... 
						
						
						
						This reverts commit b5c067b41a 
						
						
					 
					
						2024-01-18 23:15:25 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						efe800f7f0 
					 
					
						
						
							
							vkd3d-shader/dxil: Handle the DXIL SWITCH instruction.  
						
						
						
						
					 
					
						2024-01-18 23:15:14 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						4c30b23821 
					 
					
						
						
							
							vkd3d-shader: Make the control point count the outer dimension of I/O arrays.  
						
						... 
						
						
						
						The relative-addressed case in shader_register_normalise_arrayed_addressing()
leaves the control point id in idx[0], while for constant register
indices it is placed in idx[1]. The latter case could be fixed instead,
but placing the control point count in the outer dimension is more
logical. 
						
						
					 
					
						2024-01-17 22:28:59 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						418e8d8100 
					 
					
						
						
							
							vkd3d-shader/ir: Expand index range write masks to cover all element masks.  
						
						... 
						
						
						
						For example, this occurred in a shader:
reg_idx write_mask
   0      xyz
   1      xyzw
   2      xyzw
   3      xyz
The dcl_indexrange instruction covered only xyz, so once merged, searching for
xyzw failed.
It is impossible to declare an input array where elements have different
component counts, but the optimiser can create this case. One way for
this to occur is to dynamically index input values via a local array
containing copies of the input values. The optimiser converts this to
dynamically indexed inputs. 
						
						
					 
					
						2024-01-17 22:28:56 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						559d9d4ee0 
					 
					
						
						
							
							vkd3d-shader/ir: Include an initial label instruction in the first control flow block.  
						
						
						
						
					 
					
						2024-01-17 22:28:41 +01:00