Explorar el Código

gl_rasterizer: Fix polygon offset units

For some reason hardware divides polygon offset units by two. This is
visible since drivers multiply the application requested polygon offset
by two.
ReinUsesLisp hace 6 años
padre
commit
69c806feb6
Se han modificado 1 ficheros con 3 adiciones y 1 borrados
  1. 3 1
      src/video_core/renderer_opengl/gl_rasterizer.cpp

+ 3 - 1
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -1340,7 +1340,9 @@ void RasterizerOpenGL::SyncPolygonOffset() {
     state.polygon_offset.fill_enable = regs.polygon_offset_fill_enable != 0;
     state.polygon_offset.line_enable = regs.polygon_offset_line_enable != 0;
     state.polygon_offset.point_enable = regs.polygon_offset_point_enable != 0;
-    state.polygon_offset.units = regs.polygon_offset_units;
+
+    // Hardware divides polygon offset units by two
+    state.polygon_offset.units = regs.polygon_offset_units / 2.0f;
     state.polygon_offset.factor = regs.polygon_offset_factor;
     state.polygon_offset.clamp = regs.polygon_offset_clamp;