[Piglit] [PATCH] amd_pinned_memory: Port to Windows.

Brian Paul brianp at vmware.com
Fri Feb 20 14:49:34 PST 2015


Ugh, I didn't see this and just posted my own fix.  I don't think your 
patch will work though since unistd.h is still included.

I went ahead with the OS abstractions.

-Brian


On 02/20/2015 03:01 PM, Jose Fonseca wrote:
> 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;
>



More information about the Piglit mailing list