diff options
| author | 2018-03-25 00:09:53 -0400 | |
|---|---|---|
| committer | 2018-03-26 21:17:02 -0400 | |
| commit | a6cab532f89ada46988e391708eb06b3be5ade19 (patch) | |
| tree | c9b826124856fe0816e8ec065612988d2f03cd46 /src | |
| parent | memory: Fix cast for ReadBlock/WriteBlock/ZeroBlock/CopyBlock. (diff) | |
| download | yuzu-a6cab532f89ada46988e391708eb06b3be5ade19.tar.gz yuzu-a6cab532f89ada46988e391708eb06b3be5ade19.tar.xz yuzu-a6cab532f89ada46988e391708eb06b3be5ade19.zip | |
gl_rasterizer: Normalize vertex array data as appropriate.
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 | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/src/video_core/engines/maxwell_3d.h b/src/video_core/engines/maxwell_3d.h index 9d63fa803..0e1ae5912 100644 --- a/src/video_core/engines/maxwell_3d.h +++ b/src/video_core/engines/maxwell_3d.h | |||
| @@ -222,6 +222,10 @@ public: | |||
| 222 | UNREACHABLE(); | 222 | UNREACHABLE(); |
| 223 | return {}; | 223 | return {}; |
| 224 | } | 224 | } |
| 225 | |||
| 226 | bool IsNormalized() const { | ||
| 227 | return (type == Type::SignedNorm) || (type == Type::UnsignedNorm); | ||
| 228 | } | ||
| 225 | }; | 229 | }; |
| 226 | 230 | ||
| 227 | enum class PrimitiveTopology : u32 { | 231 | enum class PrimitiveTopology : u32 { |
diff --git a/src/video_core/renderer_opengl/gl_rasterizer.cpp b/src/video_core/renderer_opengl/gl_rasterizer.cpp index dfc4beb9a..7950bac9e 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer.cpp | |||
| @@ -178,7 +178,7 @@ void RasterizerOpenGL::SetupVertexArray(u8* array_ptr, GLintptr buffer_offset) { | |||
| 178 | for (unsigned index = 0; index < 16; ++index) { | 178 | for (unsigned index = 0; index < 16; ++index) { |
| 179 | auto& attrib = regs.vertex_attrib_format[index]; | 179 | auto& attrib = regs.vertex_attrib_format[index]; |
| 180 | glVertexAttribPointer(index, attrib.ComponentCount(), MaxwellToGL::VertexType(attrib), | 180 | glVertexAttribPointer(index, attrib.ComponentCount(), MaxwellToGL::VertexType(attrib), |
| 181 | GL_FALSE, vertex_array.stride, | 181 | attrib.IsNormalized() ? GL_TRUE : GL_FALSE, vertex_array.stride, |
| 182 | reinterpret_cast<GLvoid*>(buffer_offset + attrib.offset)); | 182 | reinterpret_cast<GLvoid*>(buffer_offset + attrib.offset)); |
| 183 | glEnableVertexAttribArray(index); | 183 | glEnableVertexAttribArray(index); |
| 184 | hw_vao_enabled_attributes[index] = true; | 184 | hw_vao_enabled_attributes[index] = true; |