[Impeller] Add validation forbidding SamplerAddressMode::kDecal on the OpenGLES backend (#43094)

Fixes uncontrolled crash when kDecal is used (as seen on
https://github.com/flutter/engine/pull/43087).
diff --git a/impeller/renderer/backend/gles/context_gles.cc b/impeller/renderer/backend/gles/context_gles.cc
index 8da1154..47e7256 100644
--- a/impeller/renderer/backend/gles/context_gles.cc
+++ b/impeller/renderer/backend/gles/context_gles.cc
@@ -75,6 +75,7 @@
             .SetSupportsComputeSubgroups(false)
             .SetSupportsReadFromResolve(false)
             .SetSupportsReadFromOnscreenTexture(false)
+            .SetSupportsDecalTileMode(false)
             .Build();
   }
 
diff --git a/impeller/renderer/backend/gles/sampler_library_gles.cc b/impeller/renderer/backend/gles/sampler_library_gles.cc
index bea4a4d..7f4cd3d 100644
--- a/impeller/renderer/backend/gles/sampler_library_gles.cc
+++ b/impeller/renderer/backend/gles/sampler_library_gles.cc
@@ -5,6 +5,8 @@
 #include "impeller/renderer/backend/gles/sampler_library_gles.h"
 
 #include "impeller/base/config.h"
+#include "impeller/base/validation.h"
+#include "impeller/core/formats.h"
 #include "impeller/renderer/backend/gles/sampler_gles.h"
 
 namespace impeller {
@@ -17,6 +19,17 @@
 // |SamplerLibrary|
 std::shared_ptr<const Sampler> SamplerLibraryGLES::GetSampler(
     SamplerDescriptor descriptor) {
+  // TODO(bdero): Change this validation once optional support for kDecal is
+  //              added to the OpenGLES backend:
+  //              https://github.com/flutter/flutter/issues/129358
+  if (descriptor.width_address_mode == SamplerAddressMode::kDecal ||
+      descriptor.height_address_mode == SamplerAddressMode::kDecal ||
+      descriptor.depth_address_mode == SamplerAddressMode::kDecal) {
+    VALIDATION_LOG << "SamplerAddressMode::kDecal is not supported by the "
+                      "OpenGLES backend.";
+    return nullptr;
+  }
+
   auto found = samplers_.find(descriptor);
   if (found != samplers_.end()) {
     return found->second;