gl_rasterizer: Implement constant vertex attributes
Credits go to gdkchan from Ryujinx for finding constant attributes are used in retail games.
This commit is contained in:
		
							parent
							
								
									7e4a132a77
								
							
						
					
					
						commit
						6dfcabc800
					
				@ -303,6 +303,10 @@ public:
 | 
			
		||||
                return (type == Type::SignedNorm) || (type == Type::UnsignedNorm);
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            bool IsConstant() const {
 | 
			
		||||
                return constant;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            bool IsValid() const {
 | 
			
		||||
                return size != Size::Invalid;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
@ -140,8 +140,8 @@ void RasterizerOpenGL::SetupVertexFormat() {
 | 
			
		||||
        const auto attrib = gpu.regs.vertex_attrib_format[index];
 | 
			
		||||
        const auto gl_index = static_cast<GLuint>(index);
 | 
			
		||||
 | 
			
		||||
        // Ignore invalid attributes.
 | 
			
		||||
        if (!attrib.IsValid()) {
 | 
			
		||||
        // Disable constant attributes.
 | 
			
		||||
        if (attrib.IsConstant()) {
 | 
			
		||||
            glDisableVertexAttribArray(gl_index);
 | 
			
		||||
            continue;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user