Module: Mesa Branch: master Commit: 1ec88755c2d4498e5a5a515593855611a2505e7b URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=1ec88755c2d4498e5a5a515593855611a2505e7b
Author: Andres Gomez <ago...@igalia.com> Date: Mon Jan 29 01:35:17 2018 +0200 vbo: provide 64bits support to print_draw_arrays Cc: Mathias Fröhlich <mathias.froehl...@web.de> Cc: Brian Paul <bri...@vmware.com> Signed-off-by: Andres Gomez <ago...@igalia.com> Reviewed-by: Mathias Fröhlich <mathias.froehl...@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); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit