mirror of
				https://github.com/yuzu-emu/yuzu.git
				synced 2025-10-31 04:32:49 +00:00 
			
		
		
		
	gl_shader_decompiler: Add shader stage hint.
This commit is contained in:
		
							parent
							
								
									a992aac5eb
								
							
						
					
					
						commit
						50023bdae7
					
				| @ -128,8 +128,9 @@ private: | ||||
| class GLSLGenerator { | ||||
| public: | ||||
|     GLSLGenerator(const std::set<Subroutine>& subroutines, const ProgramCode& program_code, | ||||
|                   u32 main_offset) | ||||
|         : subroutines(subroutines), program_code(program_code), main_offset(main_offset) { | ||||
|                   u32 main_offset, Maxwell3D::Regs::ShaderStage stage) | ||||
|         : subroutines(subroutines), program_code(program_code), main_offset(main_offset), | ||||
|           stage(stage) { | ||||
| 
 | ||||
|         Generate(); | ||||
|     } | ||||
| @ -429,6 +430,7 @@ private: | ||||
|     const std::set<Subroutine>& subroutines; | ||||
|     const ProgramCode& program_code; | ||||
|     const u32 main_offset; | ||||
|     Maxwell3D::Regs::ShaderStage stage; | ||||
| 
 | ||||
|     ShaderWriter shader; | ||||
|     ShaderWriter declarations; | ||||
| @ -443,10 +445,11 @@ std::string GetCommonDeclarations() { | ||||
|     return "bool exec_shader();"; | ||||
| } | ||||
| 
 | ||||
| boost::optional<std::string> DecompileProgram(const ProgramCode& program_code, u32 main_offset) { | ||||
| boost::optional<std::string> DecompileProgram(const ProgramCode& program_code, u32 main_offset, | ||||
|                                               Maxwell3D::Regs::ShaderStage stage) { | ||||
|     try { | ||||
|         auto subroutines = ControlFlowAnalyzer(program_code, main_offset).GetSubroutines(); | ||||
|         GLSLGenerator generator(subroutines, program_code, main_offset); | ||||
|         GLSLGenerator generator(subroutines, program_code, main_offset, stage); | ||||
|         return generator.GetShaderCode(); | ||||
|     } catch (const DecompileFail& exception) { | ||||
|         LOG_ERROR(HW_GPU, "Shader decompilation failed: %s", exception.what()); | ||||
|  | ||||
| @ -7,14 +7,18 @@ | ||||
| #include <string> | ||||
| #include <boost/optional.hpp> | ||||
| #include "common/common_types.h" | ||||
| #include "video_core/engines/maxwell_3d.h" | ||||
| #include "video_core/renderer_opengl/gl_shader_gen.h" | ||||
| 
 | ||||
| namespace GLShader { | ||||
| namespace Decompiler { | ||||
| 
 | ||||
| using Tegra::Engines::Maxwell3D; | ||||
| 
 | ||||
| std::string GetCommonDeclarations(); | ||||
| 
 | ||||
| boost::optional<std::string> DecompileProgram(const ProgramCode& program_code, u32 main_offset); | ||||
| boost::optional<std::string> DecompileProgram(const ProgramCode& program_code, u32 main_offset, | ||||
|                                               Maxwell3D::Regs::ShaderStage stage); | ||||
| 
 | ||||
| } // namespace Decompiler
 | ||||
| } // namespace GLShader
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei