From a6cab532f89ada46988e391708eb06b3be5ade19 Mon Sep 17 00:00:00 2001 From: bunnei Date: Sun, 25 Mar 2018 00:09:53 -0400 Subject: gl_rasterizer: Normalize vertex array data as appropriate. --- src/video_core/engines/maxwell_3d.h | 4 ++++ src/video_core/renderer_opengl/gl_rasterizer.cpp | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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: UNREACHABLE(); return {}; } + + bool IsNormalized() const { + return (type == Type::SignedNorm) || (type == Type::UnsignedNorm); + } }; 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) { for (unsigned index = 0; index < 16; ++index) { auto& attrib = regs.vertex_attrib_format[index]; glVertexAttribPointer(index, attrib.ComponentCount(), MaxwellToGL::VertexType(attrib), - GL_FALSE, vertex_array.stride, + attrib.IsNormalized() ? GL_TRUE : GL_FALSE, vertex_array.stride, reinterpret_cast(buffer_offset + attrib.offset)); glEnableVertexAttribArray(index); hw_vao_enabled_attributes[index] = true; -- cgit v1.2.3