فهرست منبع

Pica/CommandProcessor: Work around initialized vertex attributes some more.

Tony Wasserka 11 سال پیش
والد
کامیت
67120270f2
1فایلهای تغییر یافته به همراه8 افزوده شده و 2 حذف شده
  1. 8 2
      src/video_core/command_processor.cpp

+ 8 - 2
src/video_core/command_processor.cpp

@@ -2,6 +2,8 @@
 // Licensed under GPLv2 or any later version
 // Refer to the license.txt file included.
 
+#include <boost/range/algorithm/fill.hpp>
+
 #include "clipper.h"
 #include "command_processor.h"
 #include "math.h"
@@ -65,10 +67,14 @@ static inline void WritePicaReg(u32 id, u32 value, u32 mask) {
 
             // Information about internal vertex attributes
             u32 vertex_attribute_sources[16];
-            std::fill(vertex_attribute_sources, &vertex_attribute_sources[16], 0xdeadbeef);
+            boost::fill(vertex_attribute_sources, 0xdeadbeef);
             u32 vertex_attribute_strides[16];
             u32 vertex_attribute_formats[16];
-            u32 vertex_attribute_elements[16];
+
+            // HACK: Initialize vertex_attribute_elements to zero to prevent infinite loops below.
+            // This is one of the hacks required to deal with uninitalized vertex attributes.
+            // TODO: Fix this properly.
+            u32 vertex_attribute_elements[16] = {};
             u32 vertex_attribute_element_size[16];
 
             // Setup attribute data from loaders