mirror of
https://github.com/godotengine/godot-angle-static.git
synced 2026-01-03 14:09:33 +03:00
Revert "Metal: initialize std::arrays in mtl_render_utils"
This reverts commit c40d31b026.
Reason for revert: Invalid rationale, it does not solve the
problem. std::array does run the default constructors
of the AutoObjCPtrs held in them.
Original change's description:
> 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>
Bug: angleproject:8293
Change-Id: Ibacacd70fc196b5ecb3d0bc971d6565f7f578d4c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4765207
Reviewed-by: Geoff Lang <geofflang@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
This commit is contained in:
committed by
Angle LUCI CQ
parent
c5949fe0ee
commit
2d87c31da6
@@ -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() = delete;
|
||||
CopyPixelsUtils() = default;
|
||||
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