[Impeller] Set color attachment pixel format to RGBA on OpenGLES backend (#37843)
diff --git a/impeller/renderer/backend/gles/context_gles.cc b/impeller/renderer/backend/gles/context_gles.cc index e539249..9ecd91c 100644 --- a/impeller/renderer/backend/gles/context_gles.cc +++ b/impeller/renderer/backend/gles/context_gles.cc
@@ -142,4 +142,9 @@ return kLegacyBackendFeatures; } +// |Context| +PixelFormat ContextGLES::GetColorAttachmentPixelFormat() const { + return PixelFormat::kR8G8B8A8UNormInt; +} + } // namespace impeller
diff --git a/impeller/renderer/backend/gles/context_gles.h b/impeller/renderer/backend/gles/context_gles.h index 9e23e19..4c84146 100644 --- a/impeller/renderer/backend/gles/context_gles.h +++ b/impeller/renderer/backend/gles/context_gles.h
@@ -76,6 +76,9 @@ // |Context| const BackendFeatures& GetBackendFeatures() const override; + // |Context| + PixelFormat GetColorAttachmentPixelFormat() const override; + FML_DISALLOW_COPY_AND_ASSIGN(ContextGLES); };
diff --git a/impeller/renderer/render_target.cc b/impeller/renderer/render_target.cc index ef196a0..7c13412 100644 --- a/impeller/renderer/render_target.cc +++ b/impeller/renderer/render_target.cc
@@ -192,7 +192,7 @@ TextureDescriptor color_tex0; color_tex0.storage_mode = color_storage_mode; - color_tex0.format = PixelFormat::kDefaultColor; + color_tex0.format = context.GetColorAttachmentPixelFormat(); color_tex0.size = size; color_tex0.usage = static_cast<uint64_t>(TextureUsage::kRenderTarget) | static_cast<uint64_t>(TextureUsage::kShaderRead); @@ -257,7 +257,7 @@ color0_tex_desc.storage_mode = color_storage_mode; color0_tex_desc.type = TextureType::kTexture2DMultisample; color0_tex_desc.sample_count = SampleCount::kCount4; - color0_tex_desc.format = PixelFormat::kDefaultColor; + color0_tex_desc.format = context.GetColorAttachmentPixelFormat(); color0_tex_desc.size = size; color0_tex_desc.usage = static_cast<uint64_t>(TextureUsage::kRenderTarget); @@ -274,7 +274,7 @@ TextureDescriptor color0_resolve_tex_desc; color0_resolve_tex_desc.storage_mode = color_resolve_storage_mode; - color0_resolve_tex_desc.format = PixelFormat::kDefaultColor; + color0_resolve_tex_desc.format = context.GetColorAttachmentPixelFormat(); color0_resolve_tex_desc.size = size; color0_resolve_tex_desc.usage = static_cast<uint64_t>(TextureUsage::kRenderTarget) |