mirror of
				https://git.tardis.systems/mirrors/yuzu
				synced 2025-10-30 18:24:15 +01:00 
			
		
		
		
	Merge pull request #629 from Subv/depth_test
GPU: Allow using the old NV04 values for the depth test function.
This commit is contained in:
		
						commit
						51bd76a5fd
					
				| @ -281,14 +281,26 @@ public: | ||||
|         }; | ||||
| 
 | ||||
|         enum class ComparisonOp : u32 { | ||||
|             Never = 0, | ||||
|             Less = 1, | ||||
|             Equal = 2, | ||||
|             LessEqual = 3, | ||||
|             Greater = 4, | ||||
|             NotEqual = 5, | ||||
|             GreaterEqual = 6, | ||||
|             Always = 7, | ||||
|             // These values are used by Nouveau and most games, they correspond to the OpenGL token
 | ||||
|             // values for these operations.
 | ||||
|             Never = 0x200, | ||||
|             Less = 0x201, | ||||
|             Equal = 0x202, | ||||
|             LessEqual = 0x203, | ||||
|             Greater = 0x204, | ||||
|             NotEqual = 0x205, | ||||
|             GreaterEqual = 0x206, | ||||
|             Always = 0x207, | ||||
| 
 | ||||
|             // These values are used by some games, they seem to be NV04 values.
 | ||||
|             NeverOld = 1, | ||||
|             LessOld = 2, | ||||
|             EqualOld = 3, | ||||
|             LessEqualOld = 4, | ||||
|             GreaterOld = 5, | ||||
|             NotEqualOld = 6, | ||||
|             GreaterEqualOld = 7, | ||||
|             AlwaysOld = 8, | ||||
|         }; | ||||
| 
 | ||||
|         struct Cull { | ||||
| @ -482,7 +494,7 @@ public: | ||||
| 
 | ||||
|                 u32 d3d_cull_mode; | ||||
| 
 | ||||
|                 BitField<0, 3, ComparisonOp> depth_test_func; | ||||
|                 ComparisonOp depth_test_func; | ||||
| 
 | ||||
|                 INSERT_PADDING_WORDS(0xB); | ||||
| 
 | ||||
|  | ||||
| @ -211,20 +211,28 @@ inline GLenum SwizzleSource(Tegra::Texture::SwizzleSource source) { | ||||
| inline GLenum ComparisonOp(Maxwell::ComparisonOp comparison) { | ||||
|     switch (comparison) { | ||||
|     case Maxwell::ComparisonOp::Never: | ||||
|     case Maxwell::ComparisonOp::NeverOld: | ||||
|         return GL_NEVER; | ||||
|     case Maxwell::ComparisonOp::Less: | ||||
|     case Maxwell::ComparisonOp::LessOld: | ||||
|         return GL_LESS; | ||||
|     case Maxwell::ComparisonOp::Equal: | ||||
|     case Maxwell::ComparisonOp::EqualOld: | ||||
|         return GL_EQUAL; | ||||
|     case Maxwell::ComparisonOp::LessEqual: | ||||
|     case Maxwell::ComparisonOp::LessEqualOld: | ||||
|         return GL_LEQUAL; | ||||
|     case Maxwell::ComparisonOp::Greater: | ||||
|     case Maxwell::ComparisonOp::GreaterOld: | ||||
|         return GL_GREATER; | ||||
|     case Maxwell::ComparisonOp::NotEqual: | ||||
|     case Maxwell::ComparisonOp::NotEqualOld: | ||||
|         return GL_NOTEQUAL; | ||||
|     case Maxwell::ComparisonOp::GreaterEqual: | ||||
|     case Maxwell::ComparisonOp::GreaterEqualOld: | ||||
|         return GL_GEQUAL; | ||||
|     case Maxwell::ComparisonOp::Always: | ||||
|     case Maxwell::ComparisonOp::AlwaysOld: | ||||
|         return GL_ALWAYS; | ||||
|     } | ||||
|     LOG_CRITICAL(Render_OpenGL, "Unimplemented comparison op={}", static_cast<u32>(comparison)); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user