aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobin Ehlis <tobin@lunarg.com>2014-11-27 07:53:59 -0700
committerTobin Ehlis <tobin@lunarg.com>2014-11-27 07:53:59 -0700
commit5826c02791b3d412cce4e63f81820b17c4e95686 (patch)
tree9ef2da8376479a3bc22412490f464488c5ac01f3
parenta5d8e92f21520f5235480c5a82918f36d98bb0fc (diff)
downloadusermoji-5826c02791b3d412cce4e63f81820b17c4e95686.tar.xz
demos: Update tri to include mem refs and properly clear mem bindings prior to object deletion.
-rw-r--r--demos/tri.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/demos/tri.c b/demos/tri.c
index 45bc4a98..a3f32ea0 100644
--- a/demos/tri.c
+++ b/demos/tri.c
@@ -153,8 +153,17 @@ static void demo_draw(struct demo *demo)
err = xglWaitForFences(demo->device, 1, &fence, XGL_TRUE, ~((XGL_UINT64) 0));
assert(err == XGL_SUCCESS || err == XGL_ERROR_UNAVAILABLE);
+ XGL_MEMORY_REF memRefs[4];
+ memRefs[0].mem = demo->depth.mem;
+ memRefs[0].flags = 0;
+ memRefs[1].mem = demo->textures[0].mem;
+ memRefs[1].flags = 0;
+ memRefs[2].mem = demo->buffers[0].mem;
+ memRefs[2].flags = 0;
+ memRefs[3].mem = demo->buffers[1].mem;
+ memRefs[3].flags = 0;
err = xglQueueSubmit(demo->queue, 1, &demo->cmd,
- 0, NULL, XGL_NULL_HANDLE);
+ 4, memRefs, XGL_NULL_HANDLE);
assert(!err);
err = xglWsiX11QueuePresent(demo->queue, &present, fence);
@@ -903,12 +912,14 @@ static void demo_cleanup(struct demo *demo)
for (i = 0; i < DEMO_TEXTURE_COUNT; i++) {
xglDestroyObject(demo->textures[i].view);
+ xglBindObjectMemory(demo->textures[i].image, 0, XGL_NULL_HANDLE);
xglDestroyObject(demo->textures[i].image);
xglFreeMemory(demo->textures[i].mem);
xglDestroyObject(demo->textures[i].sampler);
}
xglDestroyObject(demo->depth.view);
+ xglBindObjectMemory(demo->depth.image, 0, XGL_NULL_HANDLE);
xglDestroyObject(demo->depth.image);
xglFreeMemory(demo->depth.mem);