[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) |