mirror of
				https://git.zaroz.cloud/nintendo-back-up/yuzu/yuzu-mainline.git
				synced 2025-03-21 01:53:15 +00:00 
			
		
		
		
	Merge pull request #2778 from ReinUsesLisp/nop
shader_ir: Implement NOP
This commit is contained in:
		
						commit
						ca61e298b3
					
				| @ -559,6 +559,11 @@ union Instruction { | |||||||
|     BitField<39, 8, Register> gpr39; |     BitField<39, 8, Register> gpr39; | ||||||
|     BitField<48, 16, u64> opcode; |     BitField<48, 16, u64> opcode; | ||||||
| 
 | 
 | ||||||
|  |     union { | ||||||
|  |         BitField<8, 5, ConditionCode> cc; | ||||||
|  |         BitField<13, 1, u64> trigger; | ||||||
|  |     } nop; | ||||||
|  | 
 | ||||||
|     union { |     union { | ||||||
|         BitField<8, 8, Register> gpr; |         BitField<8, 8, Register> gpr; | ||||||
|         BitField<20, 24, s64> offset; |         BitField<20, 24, s64> offset; | ||||||
| @ -1516,6 +1521,7 @@ public: | |||||||
|         TMML,   // Texture Mip Map Level
 |         TMML,   // Texture Mip Map Level
 | ||||||
|         SUST,   // Surface Store
 |         SUST,   // Surface Store
 | ||||||
|         EXIT, |         EXIT, | ||||||
|  |         NOP, | ||||||
|         IPA, |         IPA, | ||||||
|         OUT_R, // Emit vertex/primitive
 |         OUT_R, // Emit vertex/primitive
 | ||||||
|         ISBERD, |         ISBERD, | ||||||
| @ -1795,6 +1801,7 @@ private: | |||||||
|             INST("110111110110----", Id::TMML_B, Type::Texture, "TMML_B"), |             INST("110111110110----", Id::TMML_B, Type::Texture, "TMML_B"), | ||||||
|             INST("1101111101011---", Id::TMML, Type::Texture, "TMML"), |             INST("1101111101011---", Id::TMML, Type::Texture, "TMML"), | ||||||
|             INST("11101011001-----", Id::SUST, Type::Image, "SUST"), |             INST("11101011001-----", Id::SUST, Type::Image, "SUST"), | ||||||
|  |             INST("0101000010110---", Id::NOP, Type::Trivial, "NOP"), | ||||||
|             INST("11100000--------", Id::IPA, Type::Trivial, "IPA"), |             INST("11100000--------", Id::IPA, Type::Trivial, "IPA"), | ||||||
|             INST("1111101111100---", Id::OUT_R, Type::Trivial, "OUT_R"), |             INST("1111101111100---", Id::OUT_R, Type::Trivial, "OUT_R"), | ||||||
|             INST("1110111111010---", Id::ISBERD, Type::Trivial, "ISBERD"), |             INST("1110111111010---", Id::ISBERD, Type::Trivial, "ISBERD"), | ||||||
|  | |||||||
| @ -22,6 +22,12 @@ u32 ShaderIR::DecodeOther(NodeBlock& bb, u32 pc) { | |||||||
|     const auto opcode = OpCode::Decode(instr); |     const auto opcode = OpCode::Decode(instr); | ||||||
| 
 | 
 | ||||||
|     switch (opcode->get().GetId()) { |     switch (opcode->get().GetId()) { | ||||||
|  |     case OpCode::Id::NOP: { | ||||||
|  |         UNIMPLEMENTED_IF(instr.nop.cc != Tegra::Shader::ConditionCode::T); | ||||||
|  |         UNIMPLEMENTED_IF(instr.nop.trigger != 0); | ||||||
|  |         // With the previous preconditions, this instruction is a no-operation.
 | ||||||
|  |         break; | ||||||
|  |     } | ||||||
|     case OpCode::Id::EXIT: { |     case OpCode::Id::EXIT: { | ||||||
|         const Tegra::Shader::ConditionCode cc = instr.flow_condition_code; |         const Tegra::Shader::ConditionCode cc = instr.flow_condition_code; | ||||||
|         UNIMPLEMENTED_IF_MSG(cc != Tegra::Shader::ConditionCode::T, "EXIT condition code used: {}", |         UNIMPLEMENTED_IF_MSG(cc != Tegra::Shader::ConditionCode::T, "EXIT condition code used: {}", | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 bunnei
						bunnei