mesa: add support for NV_pixel_buffer_object
authorSimon Ser <contact@emersion.fr>
Thu, 2 Apr 2020 20:53:41 +0000 (22:53 +0200)
committerMarge Bot <eric+marge@anholt.net>
Tue, 7 Apr 2020 16:52:15 +0000 (16:52 +0000)
Signed-off-by: Simon Ser <contact@emersion.fr>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4422>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4422>

src/mesa/main/bufferobj.c
src/mesa/main/extensions_table.h

index f4c8bd8..222b91e 100644 (file)
@@ -105,11 +105,21 @@ static struct gl_buffer_object DummyBufferObject;
 static inline struct gl_buffer_object **
 get_buffer_target(struct gl_context *ctx, GLenum target)
 {
-   /* Other targets are only supported in desktop OpenGL and OpenGL ES 3.0.
-    */
-   if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)
-       && target != GL_ARRAY_BUFFER && target != GL_ELEMENT_ARRAY_BUFFER)
-      return NULL;
+   /* Other targets are only supported in desktop OpenGL and OpenGL ES 3.0. */
+   if (!_mesa_is_desktop_gl(ctx) && !_mesa_is_gles3(ctx)) {
+      switch (target) {
+      case GL_ARRAY_BUFFER:
+      case GL_ELEMENT_ARRAY_BUFFER:
+         break;
+      case GL_PIXEL_PACK_BUFFER:
+      case GL_PIXEL_UNPACK_BUFFER:
+         if (!ctx->Extensions.EXT_pixel_buffer_object)
+            return NULL;
+         break;
+      default:
+         return NULL;
+      }
+   }
 
    switch (target) {
    case GL_ARRAY_BUFFER_ARB:
index 75733b0..9a678e2 100644 (file)
@@ -388,6 +388,7 @@ EXT(NV_fragment_shader_interlock            , ARB_fragment_shader_interlock
 EXT(NV_image_formats                        , ARB_shader_image_load_store            ,  x ,  x ,  x ,  31, 2014)
 EXT(NV_light_max_exponent                   , dummy_true                             , GLL,  x ,  x ,  x , 1999)
 EXT(NV_packed_depth_stencil                 , dummy_true                             , GLL, GLC,  x ,  x , 2000)
+EXT(NV_pixel_buffer_object                  , EXT_pixel_buffer_object                ,  x ,  x ,  x , ES2, 2012)
 EXT(NV_point_sprite                         , NV_point_sprite                        , GLL, GLC,  x ,  x , 2001)
 EXT(NV_primitive_restart                    , NV_primitive_restart                   , GLL,  x ,  x ,  x , 2002)
 EXT(NV_read_buffer                          , dummy_true                             ,  x ,  x ,  x , ES2, 2011)