[Piglit] [PATCH] amd_pinned_memory: Port to Windows.
Jose Fonseca
jfonseca at vmware.com
Fri Feb 20 14:01:45 PST 2015
We might want to have some OS abstractions for aligned memory if more
tests need it, but go for a simple solution for now, as it seems a
special case.
---
tests/spec/amd_pinned_memory/test.c | 20 +++++++++++++++++++-
1 file changed, 19 insertions(+), 1 deletion(-)
diff --git a/tests/spec/amd_pinned_memory/test.c b/tests/spec/amd_pinned_memory/test.c
index 239e620..a2d8b7e 100644
--- a/tests/spec/amd_pinned_memory/test.c
+++ b/tests/spec/amd_pinned_memory/test.c
@@ -136,13 +136,24 @@ enum piglit_result piglit_display(void)
{
GLboolean pass = GL_TRUE;
float white[] = {1, 1, 1, 1};
- unsigned i, vbo, size, page_size;
+ unsigned i, vbo, size;
+ size_t page_size;
GLsync fence = 0;
float x, y, *mem;
+#ifdef _WIN32
+ SYSTEM_INFO system_info;
+ GetSystemInfo(&system_info);
+ page_size = system_info.dwPageSize;
+#else
page_size = sysconf(_SC_PAGESIZE);
+#endif
size = ALIGN(NUM_PRIMS * TRI_SIZE, page_size);
+#ifdef _WIN32
+ mem = _aligned_malloc(size, page_size);
+#else
mem = aligned_alloc(page_size, size);
+#endif
glClear(GL_COLOR_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
@@ -211,6 +222,13 @@ enum piglit_result piglit_display(void)
glDeleteBuffers(1, &vbo);
if (!piglit_check_gl_error(GL_NO_ERROR))
piglit_report_result(PIGLIT_FAIL);
+
+#ifdef _WIN32
+ _aligned_free(mem);
+#else
+ free(mem);
+#endif
+
piglit_present_results();
return pass ? PIGLIT_PASS : PIGLIT_FAIL;
--
2.1.0
More information about the Piglit
mailing list