Просмотр исходного кода

gl_shader_decompiler: Fix implicit conversion errors

ReinUsesLisp 6 лет назад
Родитель
Сommit
4bc4851d45
1 измененных файлов с 3 добавлено и 3 удалено
  1. 3 3
      src/video_core/renderer_opengl/gl_shader_decompiler.cpp

+ 3 - 3
src/video_core/renderer_opengl/gl_shader_decompiler.cpp

@@ -761,7 +761,7 @@ private:
     }
 
     std::optional<std::size_t> GetNumComponents(Attribute::Index index, u8 element = 0) const {
-        const u8 location = static_cast<u8>(index) * 4 + element;
+        const u8 location = static_cast<u8>(static_cast<u32>(index) * 4 + element);
         const auto it = transform_feedback.find(location);
         if (it == transform_feedback.end()) {
             return {};
@@ -770,7 +770,7 @@ private:
     }
 
     std::string GetTransformFeedbackDecoration(Attribute::Index index, u8 element = 0) const {
-        const u8 location = static_cast<u8>(index) * 4 + element;
+        const u8 location = static_cast<u8>(static_cast<u32>(index) * 4 + element);
         const auto it = transform_feedback.find(location);
         if (it == transform_feedback.end()) {
             return {};
@@ -811,7 +811,7 @@ private:
             code.AddLine("layout (location = {}, component = {}{}) out {} {};", location, element,
                          xfb, type, description.name);
 
-            element += static_cast<u8>(num_components);
+            element = static_cast<u8>(static_cast<std::size_t>(element) + num_components);
         }
     }