diff --git a/filament/src/details/Engine.cpp b/filament/src/details/Engine.cpp index 601d2402fd..a0e199fc31 100644 --- a/filament/src/details/Engine.cpp +++ b/filament/src/details/Engine.cpp @@ -371,13 +371,16 @@ void FEngine::init() { .sampler(Texture::Sampler::SAMPLER_CUBEMAP) .build(*this)); - static constexpr std::array zeroCubemap{}; - static constexpr std::array zeroRGBA{}; - static constexpr std::array oneRGBA{ 0xff, 0xff, 0xff, 0xff }; - static constexpr std::array oneFloat{ 1.0f }; + static constexpr std::array zeroCubemap{}; + static constexpr std::array zeroRGBA{}; + static constexpr std::array oneRGBA{ 0xffffffff }; + static constexpr std::array oneFloat{ 1.0f }; + auto const size = [](auto&& array) { + return array.size() * sizeof(decltype(array[0])); + }; driverApi.update3DImage(mDefaultIblTexture->getHwHandle(), 0, 0, 0, 0, 1, 1, 6, - { zeroCubemap.data(), 6, Texture::Format::RGBA, Texture::Type::UBYTE }); + { zeroCubemap.data(), size(zeroCubemap), Texture::Format::RGBA, Texture::Type::UBYTE }); // 3 bands = 9 float3 constexpr float sh[9 * 3] = { 0.0f }; @@ -399,10 +402,10 @@ void FEngine::init() { TextureFormat::RGBA8, 1, 1, 1, 1, TextureUsage::DEFAULT); driverApi.update3DImage(mDummyOneTexture, 0, 0, 0, 0, 1, 1, 1, - { oneRGBA.data(), 4, Texture::Format::RGBA, Texture::Type::UBYTE }); + { oneRGBA.data(), size(oneRGBA), Texture::Format::RGBA, Texture::Type::UBYTE }); driverApi.update3DImage(mDummyZeroTexture, 0, 0, 0, 0, 1, 1, 1, - { zeroRGBA.data(), 4, Texture::Format::RGBA, Texture::Type::UBYTE }); + { zeroRGBA.data(), size(zeroRGBA), Texture::Format::RGBA, Texture::Type::UBYTE }); mPerViewDescriptorSetLayoutSsrVariant = { @@ -467,13 +470,13 @@ void FEngine::init() { TextureFormat::RGBA8, 1, 1, 1, 1, TextureUsage::DEFAULT); driverApi.update3DImage(mDummyOneTextureArray, 0, 0, 0, 0, 1, 1, 1, - { oneRGBA.data(), 4, Texture::Format::RGBA, Texture::Type::UBYTE }); + { oneRGBA.data(), size(oneRGBA), Texture::Format::RGBA, Texture::Type::UBYTE }); driverApi.update3DImage(mDummyOneTextureArrayDepth, 0, 0, 0, 0, 1, 1, 1, - { oneFloat.data(), 4, Texture::Format::DEPTH_COMPONENT, Texture::Type::FLOAT }); + { oneFloat.data(), size(oneFloat), Texture::Format::DEPTH_COMPONENT, Texture::Type::FLOAT }); driverApi.update3DImage(mDummyZeroTextureArray, 0, 0, 0, 0, 1, 1, 1, - { zeroRGBA.data(), 4, Texture::Format::RGBA, Texture::Type::UBYTE }); + { zeroRGBA.data(), size(zeroRGBA), Texture::Format::RGBA, Texture::Type::UBYTE }); mDummyUniformBuffer = driverApi.createBufferObject(CONFIG_MINSPEC_UBO_SIZE, BufferObjectBinding::UNIFORM, BufferUsage::STATIC);