Conor McCarthy 
							
						 
					 
					
						
						
							
						
						59730ecfd8 
					 
					
						
						
							
							vkd3d-shader/dxil: Implement the DXIL GEP instruction.  
						
						
						
						
					 
					
						2023-11-22 22:07:58 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						b1123ed35f 
					 
					
						
						
							
							vkd3d-shader/ir: Correctly compute the TEMP count after hull shader flattening.  
						
						... 
						
						
						
						The previous computation was incorrect because the count was taken
after resetting it to zero (as part of setting the instruction to NOP). 
						
						
					 
					
						2023-11-20 22:07:41 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						5cb17cfd1c 
					 
					
						
						
							
							vkd3d-shader/ir: Validate IFC instructions.  
						
						
						
						
					 
					
						2023-11-20 22:07:36 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						849a8f3add 
					 
					
						
						
							
							vkd3d-shader/ir: Expect two sources for LOOP in SM1-3.  
						
						
						
						
					 
					
						2023-11-20 22:07:35 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						0c5c18bdce 
					 
					
						
						
							
							vkd3d-shader/ir: Validate index count for IMMCONST64 registers.  
						
						
						
						
					 
					
						2023-11-09 21:15:51 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						b74470b9d2 
					 
					
						
						
							
							vkd3d-shader/ir: Validate index count for IMMCONST registers.  
						
						
						
						
					 
					
						2023-11-09 21:15:49 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						c867682982 
					 
					
						
						
							
							vkd3d-shader/ir: Validate index count for NULL registers.  
						
						
						
						
					 
					
						2023-11-09 21:15:47 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						12fcb8dcc6 
					 
					
						
						
							
							vkd3d-shader/ir: Validate register indices.  
						
						
						
						
					 
					
						2023-11-09 21:15:44 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						b7aeb5dd70 
					 
					
						
						
							
							vkd3d-shader/ir: Use vsir_register_init() to initialize a register.  
						
						
						
						
					 
					
						2023-11-09 21:15:42 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						a869069a48 
					 
					
						
						
							
							vkd3d-shader/ir: Validate the TEMP register indices in each HS phase.  
						
						
						
						
					 
					
						2023-11-09 21:15:40 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						0f4bda9c9d 
					 
					
						
						
							
							vkd3d-shader/ir: Keep track of hull shader phases.  
						
						
						
						
					 
					
						2023-11-09 21:15:38 +01:00 
						 
				 
			
				
					
						
							
							
								Conor McCarthy 
							
						 
					 
					
						
						
							
						
						5768c019c1 
					 
					
						
						
							
							vkd3d-shader/ir: Check the handler before changing it to NOP in remove_dead_code().  
						
						
						
						
					 
					
						2023-11-09 21:15:29 +01:00 
						 
				 
			
				
					
						
							
							
								Zebediah Figura 
							
						 
					 
					
						
						
							
						
						c7a7d9a18c 
					 
					
						
						
							
							vkd3d-shader/ir: Normalize all I/O registers to INPUT/OUTPUT/PATCHCONST.  
						
						... 
						
						
						
						Specifically, map COLOROUT to OUTPUT, and map INCONTROLPOINT to INPUT for domain
shaders as well as hull shaders.
Obscure the non-existent differences from the view of the backend. 
						
						
					 
					
						2023-11-09 21:14:52 +01:00 
						 
				 
			
				
					
						
							
							
								Zebediah Figura 
							
						 
					 
					
						
						
							
						
						852eefc01d 
					 
					
						
						
							
							vkd3d-shader/ir: Synthesize HS inputs with the register index and write mask of the signature element.  
						
						... 
						
						
						
						This pass was written as if to output normalized I/O, but it runs before the I/O
normalization pass.
Fixes: 98b5e2c6e0 
						
						
					 
					
						2023-11-07 22:26:53 +01:00 
						 
				 
			
				
					
						
							
							
								Zebediah Figura 
							
						 
					 
					
						
						
							
						
						12240efa79 
					 
					
						
						
							
							vkd3d-shader/spirv: Use register counts from the signature and shader desc.  
						
						
						
						
					 
					
						2023-11-07 22:26:49 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						7d49f9637a 
					 
					
						
						
							
							vkd3d-shader/ir: Check that SWITCH blocks are correctly nested.  
						
						
						
						
					 
					
						2023-11-07 22:26:05 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						93632fb407 
					 
					
						
						
							
							vkd3d-shader/ir: Check that REP blocks are correctly nested.  
						
						
						
						
					 
					
						2023-11-07 22:26:04 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						92c36615ed 
					 
					
						
						
							
							vkd3d-shader/ir: Check that LOOP blocks are correctly nested.  
						
						
						
						
					 
					
						2023-11-07 22:26:03 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						2f7d52dba4 
					 
					
						
						
							
							vkd3d-shader/ir: Check that IF blocks are correctly nested.  
						
						
						
						
					 
					
						2023-11-07 22:26:01 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						0a7e200f89 
					 
					
						
						
							
							vkd3d-shader/ir: Do not enfore DCL_TEMPS count for hull shaders.  
						
						... 
						
						
						
						Hull shaders have a different temps count for each phase, and the
parser only reports the count for the patch constant phase.
In order to properly check for temps count on hull shaders, we first
need to decode its phases. 
						
						
					 
					
						2023-11-07 22:26:00 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						ca3f594ae3 
					 
					
						
						
							
							vkd3d-shader/ir: Emit an ERR() on validation errors.  
						
						
						
						
					 
					
						2023-11-07 22:25:58 +01:00 
						 
				 
			
				
					
						
							
							
								Zebediah Figura 
							
						 
					 
					
						
						
							
						
						b73d2c978d 
					 
					
						
						
							
							vkd3d-shader/ir: Check for vocp usage during IR normalization.  
						
						... 
						
						
						
						The hull shader barrier used for this was broken by I/O normalization, since
vocp is no longer exposed to the spirv backend.
Restore this barrier by checking for vocp during normalization instead. 
						
						
					 
					
						2023-11-06 23:07:56 +01:00 
						 
				 
			
				
					
						
							
							
								Zebediah Figura 
							
						 
					 
					
						
						
							
						
						8b42f523f2 
					 
					
						
						
							
							vkd3d-shader/ir: Pass a vkd3d_shader_parser to instruction_array_normalise_io_registers().  
						
						
						
						
					 
					
						2023-11-06 23:07:54 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						af72466db1 
					 
					
						
						
							
							vkd3d-shader/ir: Validate the index of a TEMP register.  
						
						
						
						
					 
					
						2023-11-02 18:22:52 +01:00 
						 
				 
			
				
					
						
							
							
								Giovanni Mascellani 
							
						 
					 
					
						
						
							
						
						4140b87499 
					 
					
						
						
							
							vkd3d-shader/ir: Validate the DCL_TEMPS instruction.  
						
						
						
						
					 
					
						2023-11-02 18:22:50 +01:00