gallium: Make (num_)samples an unsigned int
authorGert Wollny <gw.fossdev@gmail.com>
Thu, 18 Jan 2018 08:57:26 +0000 (09:57 +0100)
committerEmil Velikov <emil.l.velikov@gmail.com>
Fri, 19 Jan 2018 15:45:57 +0000 (15:45 +0000)
According to the ARB_multisample num_samples is a non-negative integer.
Consequently define it as such, fail in glx/choose_visual if a negative
number is given.

v2: split patch into gallium and mesa part

Signed-off-by: Gert Wollny <gw.fossdev@gmail.com>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
src/gallium/include/state_tracker/st_api.h
src/gallium/state_trackers/glx/xlib/glx_api.c

index f95f65f15601d28144c3d0d2d4532ba3ec9f38b8..ec6e7844b8703530be2542379f4c943d779a4616 100644 (file)
@@ -202,7 +202,7 @@ struct st_visual
    enum pipe_format color_format;
    enum pipe_format depth_stencil_format;
    enum pipe_format accum_format;
-   int samples;
+   unsigned samples;
 
    /**
     * Desired render buffer.
index c473a0fe541b4ce055ae6fd309cccfe6f022a877..1994e6823a83aa3f845f3cc4b86d19b85909240c 100644 (file)
@@ -181,7 +181,7 @@ save_glx_visual( Display *dpy, XVisualInfo *vinfo,
                  GLint depth_size, GLint stencil_size,
                  GLint accumRedSize, GLint accumGreenSize,
                  GLint accumBlueSize, GLint accumAlphaSize,
-                 GLint level, GLint numAuxBuffers, GLint num_samples )
+                 GLint level, GLint numAuxBuffers, GLuint num_samples )
 {
    GLboolean ximageFlag = GL_TRUE;
    XMesaVisual xmvis;
@@ -996,6 +996,10 @@ choose_visual( Display *dpy, int screen, const int *list, GLboolean fbConfig )
 
    (void) caveat;
 
+   if (num_samples < 0) {
+      _mesa_warning(NULL, "GLX_SAMPLES_ARB: number of samples must not be negative");
+      return NULL;
+   }
 
    /*
     * Since we're only simulating the GLX extension this function will never