mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-03 14:09:33 +03:00
Metal: initialize std::arrays in mtl_render_utils
The std::array default constructor does not initialize the memory. This leads to uninitialized access in mtl_render_utils *Utils. Fix by initializing them. Bug: angleproject:8293 Change-Id: I597df067f3c19907a038bb4899a178734158302c Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4756783 Reviewed-by: Kenneth Russell <kbr@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org> Auto-Submit: Kimmo Kinnunen <kkinnunen@apple.com> Reviewed-by: Geoff Lang <geofflang@chromium.org>
This commit is contained in:
committed by
Angle LUCI CQ
parent
d1e26fa224
commit
c40d31b026
@@ -219,7 +219,7 @@ class ClearUtils final : angle::NonCopyable
|
||||
const std::string mFragmentShaderName;
|
||||
|
||||
AutoObjCPtr<id<MTLFunction>> mVertexShader;
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, kMaxRenderTargets + 1> mFragmentShaders;
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, kMaxRenderTargets + 1> mFragmentShaders{};
|
||||
};
|
||||
|
||||
class ColorBlitUtils final : angle::NonCopyable
|
||||
@@ -260,9 +260,9 @@ class ColorBlitUtils final : angle::NonCopyable
|
||||
using ColorBlitFragmentShaderArray =
|
||||
std::array<std::array<AutoObjCPtr<id<MTLFunction>>, mtl_shader::kTextureTypeCount>,
|
||||
kMaxRenderTargets>;
|
||||
ColorBlitFragmentShaderArray mBlitFragmentShaders;
|
||||
ColorBlitFragmentShaderArray mBlitPremultiplyAlphaFragmentShaders;
|
||||
ColorBlitFragmentShaderArray mBlitUnmultiplyAlphaFragmentShaders;
|
||||
ColorBlitFragmentShaderArray mBlitFragmentShaders{{}};
|
||||
ColorBlitFragmentShaderArray mBlitPremultiplyAlphaFragmentShaders{{}};
|
||||
ColorBlitFragmentShaderArray mBlitUnmultiplyAlphaFragmentShaders{{}};
|
||||
};
|
||||
|
||||
class DepthStencilBlitUtils final : angle::NonCopyable
|
||||
@@ -304,15 +304,15 @@ class DepthStencilBlitUtils final : angle::NonCopyable
|
||||
AutoObjCPtr<id<MTLFunction>> mVertexShader;
|
||||
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, mtl_shader::kTextureTypeCount>
|
||||
mDepthBlitFragmentShaders;
|
||||
mDepthBlitFragmentShaders{};
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, mtl_shader::kTextureTypeCount>
|
||||
mStencilBlitFragmentShaders;
|
||||
mStencilBlitFragmentShaders{};
|
||||
std::array<std::array<AutoObjCPtr<id<MTLFunction>>, mtl_shader::kTextureTypeCount>,
|
||||
mtl_shader::kTextureTypeCount>
|
||||
mDepthStencilBlitFragmentShaders;
|
||||
mDepthStencilBlitFragmentShaders{{}};
|
||||
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, mtl_shader::kTextureTypeCount>
|
||||
mStencilBlitToBufferComputeShaders;
|
||||
mStencilBlitToBufferComputeShaders{};
|
||||
|
||||
// Intermediate buffer for storing copied stencil data. Used when device doesn't support
|
||||
// writing stencil in shader.
|
||||
@@ -425,12 +425,12 @@ class IndexGeneratorUtils final : angle::NonCopyable
|
||||
const IndexGenerationParams ¶ms,
|
||||
size_t *indicesGenerated);
|
||||
|
||||
IndexConversionShaderArray mIndexConversionShaders;
|
||||
IndexConversionShaderArray mIndexConversionShaders{{}};
|
||||
|
||||
IndexConversionShaderArray mTriFanFromElemArrayGeneratorShaders;
|
||||
IndexConversionShaderArray mTriFanFromElemArrayGeneratorShaders{{}};
|
||||
AutoObjCPtr<id<MTLFunction>> mTriFanFromArraysGeneratorShader;
|
||||
|
||||
IndexConversionShaderArray mLineLoopFromElemArrayGeneratorShaders;
|
||||
IndexConversionShaderArray mLineLoopFromElemArrayGeneratorShaders{{}};
|
||||
AutoObjCPtr<id<MTLFunction>> mLineLoopFromArraysGeneratorShader;
|
||||
};
|
||||
|
||||
@@ -453,7 +453,7 @@ class VisibilityResultUtils final : angle::NonCopyable
|
||||
// Visibility combination compute shaders:
|
||||
// - 0: This compute shader only combines the new values and discard old value.
|
||||
// - 1: This compute shader keep the old value and combines with new values.
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, 2> mVisibilityResultCombineComputeShaders;
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, 2> mVisibilityResultCombineComputeShaders{};
|
||||
};
|
||||
|
||||
// Util class for handling mipmap generation
|
||||
@@ -491,7 +491,7 @@ class MipmapUtils final : angle::NonCopyable
|
||||
class CopyPixelsUtils final : angle::NonCopyable
|
||||
{
|
||||
public:
|
||||
CopyPixelsUtils() = default;
|
||||
CopyPixelsUtils() = delete;
|
||||
CopyPixelsUtils(const std::string &readShaderName, const std::string &writeShaderName);
|
||||
|
||||
angle::Result unpackPixelsFromBufferToTexture(ContextMtl *contextMtl,
|
||||
@@ -583,8 +583,8 @@ class VertexFormatConversionUtils final : angle::NonCopyable
|
||||
using ConvertToFloatVertexShaderArray =
|
||||
std::array<AutoObjCPtr<id<MTLFunction>>, angle::kNumANGLEFormats>;
|
||||
|
||||
ConvertToFloatComputeShaderArray mConvertToFloatCompPipelineCaches;
|
||||
ConvertToFloatVertexShaderArray mConvertToFloatVertexShaders;
|
||||
ConvertToFloatComputeShaderArray mConvertToFloatCompPipelineCaches{};
|
||||
ConvertToFloatVertexShaderArray mConvertToFloatVertexShaders{};
|
||||
|
||||
AutoObjCPtr<id<MTLFunction>> mComponentsExpandComputeShader;
|
||||
AutoObjCPtr<id<MTLFunction>> mComponentsExpandVertexShader;
|
||||
|
||||
Reference in New Issue
Block a user