Skip to content

Commit 92c5145

Browse files
committed
[Tizen][impeller] Use GLES2 shaders in GL embedder surface
The '[Tizen][impeller] Disable gles3 compile' patch removes generation of the GLES3 impeller shader variants. Flutter 3.44 changed embedder_surface_gl_impeller.cc to select GLES3 shaders at runtime, which fails to compile/link without the GLES3 shader symbols. Always use the GLES2 shader set (valid on GLES3 contexts as well) so the GL-only Tizen engine builds with GLES3 shader compilation disabled.
1 parent b55fddf commit 92c5145

1 file changed

Lines changed: 5 additions & 20 deletions

File tree

engine/src/flutter/shell/platform/embedder/embedder_surface_gl_impeller.cc

Lines changed: 5 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,16 @@
1010
#include "impeller/entity/gles/entity_shaders_gles.h"
1111
#include "impeller/entity/gles/framebuffer_blend_shaders_gles.h"
1212
#include "impeller/entity/gles/modern_shaders_gles.h"
13-
#include "impeller/entity/gles3/entity_shaders_gles.h"
14-
#include "impeller/entity/gles3/framebuffer_blend_shaders_gles.h"
15-
#include "impeller/entity/gles3/modern_shaders_gles.h"
1613
#include "impeller/renderer/backend/gles/context_gles.h"
1714
#include "impeller/renderer/backend/gles/proc_table_gles.h"
1815

1916
namespace flutter {
2017

2118
namespace {
22-
std::vector<std::shared_ptr<fml::Mapping>> GetShaderMappings(bool is_gles3) {
23-
if (is_gles3) {
24-
return {
25-
std::make_shared<fml::NonOwnedMapping>(
26-
impeller_entity_shaders_gles3_data,
27-
impeller_entity_shaders_gles3_length),
28-
std::make_shared<fml::NonOwnedMapping>(
29-
impeller_modern_shaders_gles3_data,
30-
impeller_modern_shaders_gles3_length),
31-
std::make_shared<fml::NonOwnedMapping>(
32-
impeller_framebuffer_blend_shaders_gles3_data,
33-
impeller_framebuffer_blend_shaders_gles3_length),
34-
};
35-
}
19+
std::vector<std::shared_ptr<fml::Mapping>> GetShaderMappings() {
20+
// Tizen: GLES3 impeller shaders are not compiled (see
21+
// impeller/tools/shaders.gni). Always use the GLES2 shader set, which is
22+
// also valid on GLES3 contexts.
3623
return {
3724
std::make_shared<fml::NonOwnedMapping>(
3825
impeller_entity_shaders_gles_data,
@@ -101,9 +88,7 @@ EmbedderSurfaceGLImpeller::EmbedderSurfaceGLImpeller(
10188
return;
10289
}
10390

104-
const auto is_gles3 =
105-
gl->GetDescription()->GetGlVersion().IsAtLeast(impeller::Version(3));
106-
const auto shader_mappings = GetShaderMappings(is_gles3);
91+
const auto shader_mappings = GetShaderMappings();
10792

10893
impeller_context_ = impeller::ContextGLES::Create(
10994
impeller::Flags{}, std::move(gl), shader_mappings,

0 commit comments

Comments
 (0)