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
2 changed files with 6 additions and 2 deletions
|
@ -303,6 +303,10 @@ public:
|
||||||
return (type == Type::SignedNorm) || (type == Type::UnsignedNorm);
|
return (type == Type::SignedNorm) || (type == Type::UnsignedNorm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsConstant() const {
|
||||||
|
return constant;
|
||||||
|
}
|
||||||
|
|
||||||
bool IsValid() const {
|
bool IsValid() const {
|
||||||
return size != Size::Invalid;
|
return size != Size::Invalid;
|
||||||
}
|
}
|
||||||
|
|
|
@ -140,8 +140,8 @@ void RasterizerOpenGL::SetupVertexFormat() {
|
||||||
const auto attrib = gpu.regs.vertex_attrib_format[index];
|
const auto attrib = gpu.regs.vertex_attrib_format[index];
|
||||||
const auto gl_index = static_cast<GLuint>(index);
|
const auto gl_index = static_cast<GLuint>(index);
|
||||||
|
|
||||||
// Ignore invalid attributes.
|
// Disable constant attributes.
|
||||||
if (!attrib.IsValid()) {
|
if (attrib.IsConstant()) {
|
||||||
glDisableVertexAttribArray(gl_index);
|
glDisableVertexAttribArray(gl_index);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue