xserver: Branch 'master'

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 9 21:48:06 UTC 2023


 glamor/glamor_render.c |   11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

New commits:
commit 86598739ba285045bc03778d43e25bb0886627f3
Author: Dave Airlie <airlied at redhat.com>
Date:   Thu Feb 9 13:48:30 2023 +1000

    glamor: handle EXT_gpu_shader4 in dual source blend paths
    
    Fixes: a9552868697c ("glamor: add EXT_gpu_shader4 support")
    Acked-by: Emma Anholt <emma at anholt.net>

diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c
index c9a125ef9..889fe1b36 100644
--- a/glamor/glamor_render.c
+++ b/glamor/glamor_render.c
@@ -61,7 +61,7 @@ static struct blendinfo composite_op_info[] = {
 
 #define RepeatFix			10
 static GLuint
-glamor_create_composite_fs(struct shader_key *key)
+glamor_create_composite_fs(glamor_screen_private *glamor_priv, struct shader_key *key)
 {
     const char *repeat_define =
         "#define RepeatNone               	      0\n"
@@ -223,6 +223,8 @@ glamor_create_composite_fs(struct shader_key *key)
         "}\n";
     const char *header_ca_dual_blend =
         "#version 130\n";
+    const char *header_ca_dual_blend_gpu_shader4 =
+        "#version 120\n#extension GL_EXT_gpu_shader4 : require\n";
     const char *in_ca_dual_blend_gles2 =
         "void main()\n"
         "{\n"
@@ -301,7 +303,10 @@ glamor_create_composite_fs(struct shader_key *key)
         break;
     case glamor_program_alpha_dual_blend:
         in = in_ca_dual_blend;
-        header = header_ca_dual_blend;
+        if (glamor_priv->glsl_version >= 130)
+           header = header_ca_dual_blend;
+        else
+           header = header_ca_dual_blend_gpu_shader4;
         break;
     case glamor_program_alpha_dual_blend_gles2:
         in = in_ca_dual_blend_gles2;
@@ -379,7 +384,7 @@ glamor_create_composite_shader(ScreenPtr screen, struct shader_key *key,
     vs = glamor_create_composite_vs(key);
     if (vs == 0)
         return;
-    fs = glamor_create_composite_fs(key);
+    fs = glamor_create_composite_fs(glamor_priv, key);
     if (fs == 0)
         return;
 


More information about the xorg-commit mailing list