Based on the current return value of glGetString(GL_VERSION)

Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com>
---
 src/gallium/drivers/freedreno/freedreno_screen.c | 11 ++++++++++-
 src/gallium/drivers/i915/i915_screen.c           |  9 +++++++++
 src/gallium/drivers/ilo/ilo_screen.c             |  9 +++++++++
 src/gallium/drivers/llvmpipe/lp_screen.c         |  9 +++++++++
 src/gallium/drivers/nouveau/nv30/nv30_screen.c   | 10 ++++++++++
 src/gallium/drivers/nouveau/nv50/nv50_screen.c   | 10 ++++++++++
 src/gallium/drivers/nouveau/nvc0/nvc0_screen.c   | 10 ++++++++++
 src/gallium/drivers/r300/r300_screen.c           |  9 +++++++++
 src/gallium/drivers/r600/r600_pipe.c             |  9 +++++++++
 src/gallium/drivers/radeonsi/si_pipe.c           |  9 +++++++++
 src/gallium/drivers/softpipe/sp_screen.c         |  9 +++++++++
 src/gallium/drivers/svga/svga_screen.c           |  9 +++++++++
 12 files changed, 112 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/freedreno/freedreno_screen.c 
b/src/gallium/drivers/freedreno/freedreno_screen.c
index e1b5dae..68f7f13 100644
--- a/src/gallium/drivers/freedreno/freedreno_screen.c
+++ b/src/gallium/drivers/freedreno/freedreno_screen.c
@@ -244,9 +244,18 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
        case PIPE_CAP_ENDIANNESS:
                return PIPE_ENDIAN_LITTLE;
 
-        case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
+       case PIPE_CAP_MIN_MAP_BUFFER_ALIGNMENT:
                return 64;
 
+       case PIPE_CAP_MAX_GL_CORE_VERSION:
+               return 0;
+       case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+               return 14;
+       case PIPE_CAP_MAX_GL_ES1_VERSION:
+               return 11;
+       case PIPE_CAP_MAX_GL_ES2_VERSION:
+               return 20;
+
        default:
                DBG("unknown param %d", param);
                return 0;
diff --git a/src/gallium/drivers/i915/i915_screen.c 
b/src/gallium/drivers/i915/i915_screen.c
index 9f08f86..1f55a06 100644
--- a/src/gallium/drivers/i915/i915_screen.c
+++ b/src/gallium/drivers/i915/i915_screen.c
@@ -272,6 +272,15 @@ i915_get_param(struct pipe_screen *screen, enum pipe_cap 
cap)
    case PIPE_CAP_ENDIANNESS:
       return PIPE_ENDIAN_LITTLE;
 
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 0;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return 21;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 20;
+
    default:
       debug_printf("%s: Unknown cap %u.\n", __FUNCTION__, cap);
       return 0;
diff --git a/src/gallium/drivers/ilo/ilo_screen.c 
b/src/gallium/drivers/ilo/ilo_screen.c
index 9c363ac..4b595a6 100644
--- a/src/gallium/drivers/ilo/ilo_screen.c
+++ b/src/gallium/drivers/ilo/ilo_screen.c
@@ -435,6 +435,15 @@ ilo_get_param(struct pipe_screen *screen, enum pipe_cap 
param)
    case PIPE_CAP_TGSI_VS_LAYER:
       return 0;
 
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 0;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return 21;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 20;
+
    default:
       return 0;
    }
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c 
b/src/gallium/drivers/llvmpipe/lp_screen.c
index 43142e7..604f853 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -236,6 +236,15 @@ llvmpipe_get_param(struct pipe_screen *screen, enum 
pipe_cap param)
       return PIPE_ENDIAN_NATIVE;
    case PIPE_CAP_TGSI_VS_LAYER:
       return 0;
+
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 0;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return 21;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 20;
    }
    /* should only get here on unhandled cases */
    debug_printf("Unexpected PIPE_CAP %d query\n", param);
diff --git a/src/gallium/drivers/nouveau/nv30/nv30_screen.c 
b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
index 9854708..abbc3b6 100644
--- a/src/gallium/drivers/nouveau/nv30/nv30_screen.c
+++ b/src/gallium/drivers/nouveau/nv30/nv30_screen.c
@@ -136,6 +136,16 @@ nv30_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
       return 1;
    case PIPE_CAP_ENDIANNESS:
       return PIPE_ENDIAN_LITTLE;
+
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 0;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return (eng3d->oclass >= NV40_3D_CLASS) ? 21 : 15;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 20;
+
    default:
       debug_printf("unknown param %d\n", param);
       return 0;
diff --git a/src/gallium/drivers/nouveau/nv50/nv50_screen.c 
b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
index 781b391..5090b7f 100644
--- a/src/gallium/drivers/nouveau/nv50/nv50_screen.c
+++ b/src/gallium/drivers/nouveau/nv50/nv50_screen.c
@@ -199,6 +199,16 @@ nv50_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
       return 0;
    case PIPE_CAP_MAX_VIEWPORTS:
       return NV50_MAX_VIEWPORTS;
+
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 33;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return 30;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 30;
+
    default:
       NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);
       return 0;
diff --git a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c 
b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
index f04771d..b96dced 100644
--- a/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
+++ b/src/gallium/drivers/nouveau/nvc0/nvc0_screen.c
@@ -177,6 +177,16 @@ nvc0_screen_get_param(struct pipe_screen *pscreen, enum 
pipe_cap param)
       return 0;
    case PIPE_CAP_MAX_VIEWPORTS:
       return 1;
+
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 33;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return 30;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 30;
+
    default:
       NOUVEAU_ERR("unknown PIPE_CAP %d\n", param);
       return 0;
diff --git a/src/gallium/drivers/r300/r300_screen.c 
b/src/gallium/drivers/r300/r300_screen.c
index fcb01e8..6be922e 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -196,6 +196,15 @@ static int r300_get_param(struct pipe_screen* pscreen, 
enum pipe_cap param)
 
         case PIPE_CAP_MAX_VIEWPORTS:
             return 1;
+
+        case PIPE_CAP_MAX_GL_CORE_VERSION:
+            return 0;
+        case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+            return 21;
+        case PIPE_CAP_MAX_GL_ES1_VERSION:
+            return 11;
+        case PIPE_CAP_MAX_GL_ES2_VERSION:
+            return 20;
     }
     return 0;
 }
diff --git a/src/gallium/drivers/r600/r600_pipe.c 
b/src/gallium/drivers/r600/r600_pipe.c
index 0f75a53..02914b9 100644
--- a/src/gallium/drivers/r600/r600_pipe.c
+++ b/src/gallium/drivers/r600/r600_pipe.c
@@ -453,6 +453,15 @@ static int r600_get_param(struct pipe_screen* pscreen, 
enum pipe_cap param)
                return PIPE_QUIRK_TEXTURE_BORDER_COLOR_SWIZZLE_R600;
        case PIPE_CAP_ENDIANNESS:
                return PIPE_ENDIAN_LITTLE;
+
+       case PIPE_CAP_MAX_GL_CORE_VERSION:
+               return 33;
+       case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+               return 30;
+       case PIPE_CAP_MAX_GL_ES1_VERSION:
+               return 11;
+       case PIPE_CAP_MAX_GL_ES2_VERSION:
+               return 30;
        }
        return 0;
 }
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c 
b/src/gallium/drivers/radeonsi/si_pipe.c
index c64621b..4e6478c 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -332,6 +332,15 @@ static int si_get_param(struct pipe_screen* pscreen, enum 
pipe_cap param)
                return 7;
        case PIPE_CAP_ENDIANNESS:
                return PIPE_ENDIAN_LITTLE;
+
+       case PIPE_CAP_MAX_GL_CORE_VERSION:
+               return 33;
+       case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+               return 30;
+       case PIPE_CAP_MAX_GL_ES1_VERSION:
+               return 11;
+       case PIPE_CAP_MAX_GL_ES2_VERSION:
+               return 30;
        }
        return 0;
 }
diff --git a/src/gallium/drivers/softpipe/sp_screen.c 
b/src/gallium/drivers/softpipe/sp_screen.c
index 46ac519..3a6d31a 100644
--- a/src/gallium/drivers/softpipe/sp_screen.c
+++ b/src/gallium/drivers/softpipe/sp_screen.c
@@ -186,6 +186,15 @@ softpipe_get_param(struct pipe_screen *screen, enum 
pipe_cap param)
       return PIPE_ENDIAN_NATIVE;
    case PIPE_CAP_TGSI_VS_LAYER:
       return 0;
+
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 0;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return 21;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 20;
    }
    /* should only get here on unhandled cases */
    debug_printf("Unexpected PIPE_CAP %d query\n", param);
diff --git a/src/gallium/drivers/svga/svga_screen.c 
b/src/gallium/drivers/svga/svga_screen.c
index d5ae69a..b20aa26 100644
--- a/src/gallium/drivers/svga/svga_screen.c
+++ b/src/gallium/drivers/svga/svga_screen.c
@@ -275,6 +275,15 @@ svga_get_param(struct pipe_screen *screen, enum pipe_cap 
param)
       return 1;
    case PIPE_CAP_ENDIANNESS:
       return PIPE_ENDIAN_LITTLE;
+
+   case PIPE_CAP_MAX_GL_CORE_VERSION:
+      return 0;
+   case PIPE_CAP_MAX_GL_COMPAT_VERSION:
+      return 21;
+   case PIPE_CAP_MAX_GL_ES1_VERSION:
+      return 11;
+   case PIPE_CAP_MAX_GL_ES2_VERSION:
+      return 20;
    }
 
    debug_printf("Unexpected PIPE_CAP_ query %u\n", param);
-- 
1.9.0

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to