Mesa (master): vbo: provide 64bits support to print_draw_arrays

Andres Gomez tanty at kemper.freedesktop.org
Tue Feb 6 13:30:54 UTC 2018


Module: Mesa
Branch: master
Commit: 1ec88755c2d4498e5a5a515593855611a2505e7b
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ec88755c2d4498e5a5a515593855611a2505e7b

Author: Andres Gomez <agomez at igalia.com>
Date:   Mon Jan 29 01:35:17 2018 +0200

vbo: provide 64bits support to print_draw_arrays

Cc: Mathias Fröhlich <mathias.froehlich at web.de>
Cc: Brian Paul <brianp at vmware.com>
Signed-off-by: Andres Gomez <agomez at igalia.com>
Reviewed-by: Mathias Fröhlich <mathias.froehlich at web.de>

---

 src/mesa/vbo/vbo_exec_array.c | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/src/mesa/vbo/vbo_exec_array.c b/src/mesa/vbo/vbo_exec_array.c
index 74b9a1b0eb..b30e044a87 100644
--- a/src/mesa/vbo/vbo_exec_array.c
+++ b/src/mesa/vbo/vbo_exec_array.c
@@ -284,15 +284,32 @@ print_draw_arrays(struct gl_context *ctx,
                                                  MAP_INTERNAL);
          int offset = (int) (GLintptr)
             _mesa_vertex_attrib_address(array, binding);
+
+	 unsigned multiplier;
+	 switch (array->Type) {
+	 case GL_DOUBLE:
+	 case GL_INT64_ARB:
+	 case GL_UNSIGNED_INT64_ARB:
+	    multiplier = 2;
+	    break;
+	 default:
+	    multiplier = 1;
+	 }
+
          float *f = (float *) (p + offset);
          int *k = (int *) f;
 	 int i = 0;
-	 int n = (count - 1) * (binding->Stride / 4) + array->Size;
+	 int n = (count - 1) * (binding->Stride / (4 * multiplier))
+	   + array->Size;
          if (n > 32)
             n = 32;
          printf("  Data at offset %d:\n", offset);
 	 do {
-            printf("    float[%d] = 0x%08x %f\n", i, k[i], f[i]);
+	    if (multiplier == 2)
+	       printf("    double[%d] = 0x%016llx %lf\n", i,
+		      ((unsigned long long *) k)[i], ((double *) f)[i]);
+	    else
+	       printf("    float[%d] = 0x%08x %f\n", i, k[i], f[i]);
 	    i++;
 	 } while (i < n);
          ctx->Driver.UnmapBuffer(ctx, bufObj, MAP_INTERNAL);




More information about the mesa-commit mailing list