diff options
| author | Tobin Ehlis <tobin@lunarg.com> | 2014-11-27 07:53:59 -0700 |
|---|---|---|
| committer | Tobin Ehlis <tobin@lunarg.com> | 2014-11-27 07:53:59 -0700 |
| commit | 5826c02791b3d412cce4e63f81820b17c4e95686 (patch) | |
| tree | 9ef2da8376479a3bc22412490f464488c5ac01f3 | |
| parent | a5d8e92f21520f5235480c5a82918f36d98bb0fc (diff) | |
| download | usermoji-5826c02791b3d412cce4e63f81820b17c4e95686.tar.xz | |
demos: Update tri to include mem refs and properly clear mem bindings prior to object deletion.
| -rw-r--r-- | demos/tri.c | 13 |
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); |
