bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b2572a56d3 
							
						 
					 
					
						
						
							
							Merge pull request  #6900  from ameerj/attr-reorder  
						
						... 
						
						
						
						structured_control_flow: Add DemoteCombinationPass 
						
						
					 
					
						2021-09-01 17:36:26 -07:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							907dfbea71 
							
						 
					 
					
						
						
							
							structured_control_flow: Skip reordering nested demote branches.  
						
						... 
						
						
						
						Nested demote branches add complexity with combining the condition if it has not been initialized yet. Skip them for the time being. 
						
						
					 
					
						2021-08-30 11:46:25 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							4fda7f1c82 
							
						 
					 
					
						
						
							
							structured_control_flow: Conditionally invoke demote reorder pass  
						
						... 
						
						
						
						This is only needed on select drivers when a fragment shader discards/demotes. 
						
						
					 
					
						2021-08-30 11:46:24 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							862dc2b2b3 
							
						 
					 
					
						
						
							
							structured_control_flow: Add DemoteCombinationPass  
						
						... 
						
						
						
						Some drivers misread data when demotes are interleaved in the program. This moves demote branches to be checked at the end of the program.
Fixes "wireframe" issue in Pokemon SwSh on some drivers 
						
						
					 
					
						2021-08-28 11:35:25 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							6e407c02d8 
							
						 
					 
					
						
						
							
							emit_spirv_context_get_set: Fix Get FrontFace return value  
						
						... 
						
						
						
						The IR expects GetAttribute to return an F32 value. This case was returning a U32 instead. 
						
						
					 
					
						2021-08-26 21:37:34 -04:00 
						 
				 
			
				
					
						
							
							
								Valeri 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							beb7305b73 
							
						 
					 
					
						
						
							
							SPIR-V: Merge two ifs in EmitGetAttribute  
						
						
						
						
					 
					
						2021-08-19 20:13:46 +03:00 
						 
				 
			
				
					
						
							
							
								Morph 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							db07ca6c7f 
							
						 
					 
					
						
						
							
							Merge pull request  #6767  from ReinUsesLisp/fold-float-pack  
						
						... 
						
						
						
						shader: Fold UnpackFloat2x16 and PackFloat2x16 
						
						
					 
					
						2021-07-30 02:07:52 -04:00 
						 
				 
			
				
					
						
							
							
								bunnei 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							a98f14e9b0 
							
						 
					 
					
						
						
							
							Merge pull request  #6722  from ReinUsesLisp/xmad-opts  
						
						... 
						
						
						
						shader: Fold integer FMA from Nvidia's pattern 
						
						
					 
					
						2021-07-29 18:45:37 -07:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							8c9febe8f7 
							
						 
					 
					
						
						
							
							shader: Fold UnpackFloat2x16 and PackFloat2x16  
						
						... 
						
						
						
						Simplifies the code a bit when possible. These instructions should be
no-ops codegen wise. 
						
						
					 
					
						2021-07-29 21:22:52 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							1bb46b7d64 
							
						 
					 
					
						
						
							
							shader: Mark ConvertF16F32 and ConvertF32F16 as fp16 instructions  
						
						... 
						
						
						
						Fixes instances where fp16 types are not declared on SPIR-V but they are
used. This shouldn't happen on master, as it's been uncovered by an
additional optimization pass. 
						
						
					 
					
						2021-07-27 21:33:05 -03:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							c27ddb44de 
							
						 
					 
					
						
						
							
							exception: Make constructors explicit  
						
						... 
						
						
						
						Ensures that exception construction is always explicit. 
						
						
					 
					
						2021-07-27 04:15:14 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							e490ddf327 
							
						 
					 
					
						
						
							
							exception: Make what() member function nodiscard  
						
						
						
						
					 
					
						2021-07-27 04:14:32 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							90f3678ada 
							
						 
					 
					
						
						
							
							exception: Narrow down specific header  
						
						... 
						
						
						
						We can use the <exception> header instead of pulling in all of the
exception-style classes. 
						
						
					 
					
						2021-07-27 04:09:18 -04:00 
						 
				 
			
				
					
						
							
							
								Rodrigo Locatti 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							c0f99558fb 
							
						 
					 
					
						
						
							
							Merge pull request  #6724  from lioncash/nodisc-shader  
						
						... 
						
						
						
						shader_recompiler: Remove unnecessary [[nodiscard]] instances 
						
						
					 
					
						2021-07-26 16:35:21 -03:00 
						 
				 
			
				
					
						
							
							
								Rodrigo Locatti 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							de0b89792c 
							
						 
					 
					
						
						
							
							Merge pull request  #6726  from lioncash/hguard  
						
						... 
						
						
						
						emit_spirv_instructions: Add missing header guard 
						
						
					 
					
						2021-07-26 16:35:11 -03:00 
						 
				 
			
				
					
						
							
							
								Rodrigo Locatti 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							3d97f1e6cf 
							
						 
					 
					
						
						
							
							Merge pull request  #6727  from lioncash/topology  
						
						... 
						
						
						
						emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive() 
						
						
					 
					
						2021-07-26 16:35:03 -03:00 
						 
				 
			
				
					
						
							
							
								Rodrigo Locatti 
							
						 
					 
					
						
						
							
							
						
						
						
							
						
						
							b2b3fcdccd 
							
						 
					 
					
						
						
							
							Merge pull request  #6723  from lioncash/shader  
						
						... 
						
						
						
						object_pool: Add missing return in Chunk move assignment operator 
						
						
					 
					
						2021-07-26 06:01:21 -03:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							3e7813e49d 
							
						 
					 
					
						
						
							
							emit_glasm: Fix LINESS_ADJACENCY typo in InputPrimitive()  
						
						... 
						
						
						
						This should be LINES_ADJACENCY 
						
						
					 
					
						2021-07-26 04:44:56 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							c2915d9f2f 
							
						 
					 
					
						
						
							
							emit_spirv_instructions: Add missing header guard  
						
						
						
						
					 
					
						2021-07-26 04:28:35 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							06ca911621 
							
						 
					 
					
						
						
							
							shader_recompiler: Remove unnecessary [[nodiscard]] instances  
						
						... 
						
						
						
						[[nodiscard]] doesn't do anything on functions with a void return type
and causes superfluous warnings. 
						
						
					 
					
						2021-07-26 04:23:59 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							0b67df1f7c 
							
						 
					 
					
						
						
							
							control_flow: Fix duplicate switch case in OpcodeToken  
						
						... 
						
						
						
						This previously duplicated the case of the PBK case above it. 
						
						
					 
					
						2021-07-26 04:16:34 -04:00 
						 
				 
			
				
					
						
							
							
								Lioncash 
							
						 
					 
					
						
						
						
						
							
						
						
							89ad9df0e9 
							
						 
					 
					
						
						
							
							object_pool: Add missing return in Chunk move assignment operator  
						
						... 
						
						
						
						Prevents undefined behavior from occurring. 
						
						
					 
					
						2021-07-26 04:01:05 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							66a0cedba3 
							
						 
					 
					
						
						
							
							shader: Fold integer FMA from Nvidia's pattern  
						
						... 
						
						
						
						Fold shaders doing "a * b + c" on integers from the pattern generated by
Nvidia's GL compiler.
On a somewhat complex compute shader it reduces the code size by 16
instructions from 2 matches on Turing GPUs.
On Intel as extracted from KHR_pipeline_executable_properties:
Before the optimization:
```
Instruction Count: 2057
Basic Block Count: 45
Scratch Memory Size: 14752
Spill Count: 232
Fill Count: 261
SEND Count: 610
Cycle Count: 11325
```
After the optimization:
```
Instruction Count: 2046
Basic Block Count: 44
Scratch Memory Size: 13728
Spill Count: 219
Fill Count: 268
SEND Count: 604
Cycle Count: 11367
``` 
						
						
					 
					
						2021-07-26 04:58:02 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							09fb41dc63 
							
						 
					 
					
						
						
							
							shader: Use TryInstRecursive on XMAD multiply folding  
						
						... 
						
						
						
						Simplify a bit the logic. 
						
						
					 
					
						2021-07-26 04:15:27 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							f6f0383b49 
							
						 
					 
					
						
						
							
							shader: Add TryInstRecursive utility to values  
						
						
						
						
					 
					
						2021-07-26 01:31:05 -03:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							7f13104c17 
							
						 
					 
					
						
						
							
							shader: Support out of bound local memory reads and immediate writes  
						
						... 
						
						
						
						Support ignoring immediate out of bound writes. Writing dynamically out
of bounds is not yet supported (e.g. R0+0x4).
Reading out of bounds yields zero. This is supported checking for the
size from the IR; if the input is immediate, the optimization passes
will drop it. 
						
						
					 
					
						2021-07-22 21:51:41 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							56478bc9ac 
							
						 
					 
					
						
						
							
							shader: Fix disabled attribute default values  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							56c30dd9e0 
							
						 
					 
					
						
						
							
							glsl: Simplify FCMP emission  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							79d2684261 
							
						 
					 
					
						
						
							
							glsl: Update TessellationControl gl_in  
						
						... 
						
						
						
						Adheres to GL_ARB_separate_shader_objects requirements 
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							fc7bed21b5 
							
						 
					 
					
						
						
							
							shader: Implement ISETP.X  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							bf2956d77a 
							
						 
					 
					
						
						
							
							shader: Avoid usage of C++20 ranges to build in clang  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							94af0a00f6 
							
						 
					 
					
						
						
							
							glsl: Clamp shared mem size to GL_MAX_COMPUTE_SHARED_MEMORY_SIZE  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								lat9nq 
							
						 
					 
					
						
						
						
						
							
						
						
							49946cf780 
							
						 
					 
					
						
						
							
							shader_recompiler, video_core: Resolve clang errors  
						
						... 
						
						
						
						Silences the following warnings-turned-errors:
-Wsign-conversion
-Wunused-private-field
-Wbraced-scalar-init
-Wunused-variable
And some other errors 
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							2235a51b5d 
							
						 
					 
					
						
						
							
							shader: Manually convert from array<u32> to bitset instead of using bit_cast  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							41c6cb70f9 
							
						 
					 
					
						
						
							
							glsl: Fix tracking of info.uses_shadow_lod  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							11f04f1022 
							
						 
					 
					
						
						
							
							shader: Ignore global memory ops on devices lacking int64 support  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							57f222c56e 
							
						 
					 
					
						
						
							
							dual_vertex_pass: Clang format  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							8722668b3c 
							
						 
					 
					
						
						
							
							emit_spirv: Workaround VK_KHR_shader_float_controls on fp16 Nvidia  
						
						... 
						
						
						
						Fix regression on Fire Emblem: Three Houses when using native fp16. 
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								lat9nq 
							
						 
					 
					
						
						
						
						
							
						
						
							2e5af95541 
							
						 
					 
					
						
						
							
							shader: GCC fmt 8.0.0 fixes  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							b9069c7891 
							
						 
					 
					
						
						
							
							shader: Account for 33-bit IADD3 scenario  
						
						
						
						
					 
					
						2021-07-22 21:51:40 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							b21bf79bd2 
							
						 
					 
					
						
						
							
							shader: Only apply shift on register mode for IADD3  
						
						
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							5643a909bc 
							
						 
					 
					
						
						
							
							shader: Fix disabled and unwritten attributes and varyings  
						
						
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							65daec8b75 
							
						 
					 
					
						
						
							
							glsl: Fix shared and local memory declarations  
						
						... 
						
						
						
						account for the fact that program.*memory_size is in units of bytes. 
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							8289eb108f 
							
						 
					 
					
						
						
							
							opengl: Implement LOP.CC  
						
						... 
						
						
						
						Used by MH:Rise 
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							5b2b0634a1 
							
						 
					 
					
						
						
							
							spirv: Fix code emission when descriptor aliasing is unsupported  
						
						... 
						
						
						
						Fixes OpenGL. 
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							00fa09dc45 
							
						 
					 
					
						
						
							
							glsl: Declare local memory in main  
						
						
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ameerj 
							
						 
					 
					
						
						
						
						
							
						
						
							f7352411f0 
							
						 
					 
					
						
						
							
							glsl: Add passthrough geometry shader support  
						
						
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							8612b5fec5 
							
						 
					 
					
						
						
							
							shader: Use std::bit_cast instead of Common::BitCast for passthrough  
						
						
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							8a3427a4c8 
							
						 
					 
					
						
						
							
							glasm: Add passthrough geometry shader support  
						
						
						
						
					 
					
						2021-07-22 21:51:39 -04:00 
						 
				 
			
				
					
						
							
							
								ReinUsesLisp 
							
						 
					 
					
						
						
						
						
							
						
						
							7dafa96ab5 
							
						 
					 
					
						
						
							
							shader: Rework varyings and implement passthrough geometry shaders  
						
						... 
						
						
						
						Put all varyings into a single std::bitset with helpers to access it.
Implement passthrough geometry shaders using host's. 
						
						
					 
					
						2021-07-22 21:51:39 -04:00