diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c
index 86dd779..d291bf2 100644
--- a/ext/wayland/gstwaylandsink.c
+++ b/ext/wayland/gstwaylandsink.c
@@ -393,6 +393,11 @@
       break;
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       gst_buffer_replace (&sink->last_buffer, NULL);
+      gst_wl_window_set_alpha(sink->window, 1.0);
+      wl_surface_damage (sink->window->area_surface, 0, 0,
+            sink->window->render_rectangle.w, sink->window->render_rectangle.h);
+      wl_surface_commit (sink->window->area_surface);
+      wl_display_roundtrip (sink->display->display);
       gst_wayland_sink_config_hdr10 (sink, NULL);
       if (sink->window) {
         if (gst_wl_window_is_toplevel (sink->window)) {
diff --git a/ext/wayland/wlwindow.c b/ext/wayland/wlwindow.c
index e91c04a..c42c330 100644
--- a/ext/wayland/wlwindow.c
+++ b/ext/wayland/wlwindow.c
@@ -29,6 +29,8 @@
 #include "wlbuffer.h"
 #include "wlutils.h"
 
+#include "gstimxcommon.h"
+
 GST_DEBUG_CATEGORY_EXTERN (gstwayland_debug);
 #define GST_CAT_DEFAULT gstwayland_debug
 
@@ -308,14 +310,11 @@
 {
   struct wl_region *region;
 
-  /* Set area opaque */
-  region = wl_compositor_create_region (window->display->compositor);
-  wl_region_add (region, 0, 0, window->render_rectangle.w,
-      window->render_rectangle.h);
-  wl_surface_set_opaque_region (window->area_surface, region);
-  wl_region_destroy (region);
-
   if (!GST_VIDEO_INFO_HAS_ALPHA (info)) {
+    /* for platform support overlay, video should not overlap graphic*/
+    if (HAS_DCSS() || HAS_DPU())
+      return;
+
     /* Set video opaque */
     region = wl_compositor_create_region (window->display->compositor);
     wl_region_add (region, 0, 0, window->render_rectangle.w,
@@ -469,6 +468,9 @@
 {
   if (window->blend_func) {
     zwp_blending_v1_set_alpha(window->blend_func, wl_fixed_from_double(alpha));
-    zwp_blending_v1_set_blending(window->blend_func, ZWP_BLENDING_V1_BLENDING_EQUATION_FROMSOURCE);
+    if(alpha < 1.0)
+      zwp_blending_v1_set_blending(window->blend_func, ZWP_BLENDING_V1_BLENDING_EQUATION_FROMSOURCE);
+    else
+      zwp_blending_v1_set_blending(window->blend_func, ZWP_BLENDING_V1_BLENDING_EQUATION_PREMULTIPLIED);
   }
 }
