diff options
| author | Chia-I Wu <olv@lunarg.com> | 2015-04-11 12:55:53 +0800 |
|---|---|---|
| committer | Chia-I Wu <olv@lunarg.com> | 2015-04-11 13:12:45 +0800 |
| commit | 13d4c3303ee6bbbe87e29dcf4a65f19597d2a12c (patch) | |
| tree | f4dc390e4293aea260b8db314a154c12fea7e6d8 | |
| parent | dfd7c0d00732d1a5f43616cb9afb993d7948d0b3 (diff) | |
| download | usermoji-13d4c3303ee6bbbe87e29dcf4a65f19597d2a12c.tar.xz | |
demo: remove XCB_NVIDIA paths
The memory returned by xglWsiX11CreatePresentableImage() is not supposed to be
freed. This change at worse leaks the memories on app exiting for some
implementations. That should be fine.
Also, the function returns at most one memory. Remove multiple memory support
from tri.
| -rw-r--r-- | demos/cube.c | 3 | ||||
| -rw-r--r-- | demos/tri.c | 22 |
2 files changed, 7 insertions, 18 deletions
diff --git a/demos/cube.c b/demos/cube.c index fcec0e04..6553962e 100644 --- a/demos/cube.c +++ b/demos/cube.c @@ -1808,9 +1808,6 @@ static void demo_cleanup(struct demo *demo) xglDestroyObject(demo->buffers[i].view); xglDestroyObject(demo->buffers[i].image); xglDestroyObject(demo->buffers[i].cmd); -#if defined(XCB_NVIDIA) - xglFreeMemory(demo->buffers[i].mem); -#endif } xglDestroyDevice(demo->device); diff --git a/demos/tri.c b/demos/tri.c index a835c7f7..7262ff3b 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -44,8 +44,7 @@ struct demo { struct { XGL_IMAGE image; - uint32_t num_mem; - XGL_GPU_MEMORY *mem; + XGL_GPU_MEMORY mem; XGL_COLOR_ATTACHMENT_VIEW view; XGL_FENCE fence; @@ -206,8 +205,9 @@ static void demo_draw(struct demo *demo) uint32_t i, idx = 0; XGL_MEMORY_REF *memRefs = 0; - memRefs = malloc(sizeof(XGL_MEMORY_REF) * (2 + demo->depth.num_mem + - demo->textures[0].num_mem + demo->vertices.num_mem)); + memRefs = malloc(sizeof(XGL_MEMORY_REF) * (DEMO_BUFFER_COUNT + + demo->depth.num_mem + demo->textures[0].num_mem + + demo->vertices.num_mem)); for (i = 0; i < demo->depth.num_mem; i++, idx++) { memRefs[idx].mem = demo->depth.mem[i]; memRefs[idx].flags = 0; @@ -217,10 +217,8 @@ static void demo_draw(struct demo *demo) memRefs[idx].flags = 0; } for (i = 0; i < DEMO_BUFFER_COUNT; i++) { - for (uint32_t j = 0; j < demo->buffers[i].num_mem; j++) { - memRefs[idx].mem = demo->buffers[i].mem[j]; - memRefs[idx++].flags = 0; - } + memRefs[idx].mem = demo->buffers[i].mem; + memRefs[idx++].flags = 0; } for (i = 0; i < demo->vertices.num_mem; i++, idx++) { memRefs[idx].mem = demo->vertices.mem[i]; @@ -267,9 +265,8 @@ static void demo_prepare_buffers(struct demo *demo) demo->buffers[i].mem = malloc(sizeof(XGL_GPU_MEMORY)); err = xglWsiX11CreatePresentableImage(demo->device, &presentable_image, - &demo->buffers[i].image, &demo->buffers[i].mem[0]); + &demo->buffers[i].image, &demo->buffers[i].mem); assert(!err); - demo->buffers[i].num_mem = 1; color_attachment_view.image = demo->buffers[i].image; @@ -1322,11 +1319,6 @@ static void demo_cleanup(struct demo *demo) xglDestroyObject(demo->buffers[i].fence); xglDestroyObject(demo->buffers[i].view); xglDestroyObject(demo->buffers[i].image); -#if defined(XCB_NVIDIA) - for (j = 0; j < demo->buffers[i].num_mem; j++) - xglFreeMemory(demo->buffers[i].mem[j]); -#endif - free(demo->buffers[i].mem); } xglDestroyDevice(demo->device); |
