diff options
| author | 2020-04-14 17:58:53 -0300 | |
|---|---|---|
| committer | 2020-04-14 17:58:53 -0300 | |
| commit | 6dfcabc80028fd35a6d0e20d20eb8db8053eddf1 (patch) | |
| tree | 5b99ff41eefd14efd5a117c3bf52df36e07311b0 /src | |
| parent | Merge pull request #3636 from ReinUsesLisp/drop-vk-hpp (diff) | |
| download | yuzu-6dfcabc80028fd35a6d0e20d20eb8db8053eddf1.tar.gz yuzu-6dfcabc80028fd35a6d0e20d20eb8db8053eddf1.tar.xz yuzu-6dfcabc80028fd35a6d0e20d20eb8db8053eddf1.zip | |
gl_rasterizer: Implement constant vertex attributes
Credits go to gdkchan from Ryujinx for finding constant attributes are
used in retail games.
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/engines/maxwell_3d.h | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index 2977a7d81..5cf6a4cc3 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h | |||
| @@ -303,6 +303,10 @@ public: | |||
| 303 | return (type == Type::SignedNorm) || (type == Type::UnsignedNorm); | 303 | return (type == Type::SignedNorm) || (type == Type::UnsignedNorm); |
| 304 | } | 304 | } |
| 305 | 305 | ||
| 306 | bool IsConstant() const { | ||
| 307 | return constant; | ||
| 308 | } | ||
| 309 | |||
| 306 | bool IsValid() const { | 310 | bool IsValid() const { |
| 307 | return size != Size::Invalid; | 311 | return size != Size::Invalid; |
| 308 | } | 312 | } |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index f31d960c7..f4598fbf7 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -140,8 +140,8 @@ void RasterizerOpenGL::SetupVertexFormat() { | |||
| 140 | const auto attrib = gpu.regs.vertex_attrib_format[index]; | 140 | const auto attrib = gpu.regs.vertex_attrib_format[index]; |
| 141 | const auto gl_index = static_cast<GLuint>(index); | 141 | const auto gl_index = static_cast<GLuint>(index); |
| 142 | 142 | ||
| 143 | // Ignore invalid attributes. | 143 | // Disable constant attributes. |
| 144 | if (!attrib.IsValid()) { | 144 | if (attrib.IsConstant()) { |
| 145 | glDisableVertexAttribArray(gl_index); | 145 | glDisableVertexAttribArray(gl_index); |
| 146 | continue; | 146 | continue; |
| 147 | } | 147 | } |