diff options
| author | Jon Ashburn <jon@lunarg.com> | 2015-01-02 18:24:05 -0700 |
|---|---|---|
| committer | Courtney Goeltzenleuchter <courtney@LunarG.com> | 2015-02-04 17:58:08 -0700 |
| commit | 08f6eb93078182c37fb27ab3e5193430758f2805 (patch) | |
| tree | a60f0f9c45cfd69a78bdd001c383403520b5269b | |
| parent | f2d4bf111cb22c1366a066d7b9c0b4ee941a9e71 (diff) | |
| download | usermoji-08f6eb93078182c37fb27ab3e5193430758f2805.tar.xz | |
demos: Remove CmdBindAttachments() for tiler Gpus
| -rw-r--r-- | demos/cube.c | 35 | ||||
| -rw-r--r-- | demos/tri.c | 34 |
2 files changed, 64 insertions, 5 deletions
diff --git a/demos/cube.c b/demos/cube.c index a3c6659a..14c1a5c7 100644 --- a/demos/cube.c +++ b/demos/cube.c @@ -280,13 +280,44 @@ static void demo_draw_build_cmd(struct demo *demo) const XGL_FLOAT clear_color[4] = { 0.2f, 0.2f, 0.2f, 0.2f }; const XGL_FLOAT clear_depth = 1.0f; XGL_IMAGE_SUBRESOURCE_RANGE clear_range; + XGL_CMD_BUFFER_GRAPHICS_BEGIN_INFO graphics_cmd_buf_info = { + .sType = XGL_STRUCTURE_TYPE_CMD_BUFFER_GRAPHICS_BEGIN_INFO, + .pNext = NULL, + .operation = XGL_RENDER_PASS_OPERATION_BEGIN_AND_END, + }; XGL_CMD_BUFFER_BEGIN_INFO cmd_buf_info = { .sType = XGL_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, - .pNext = NULL, + .pNext = &graphics_cmd_buf_info, .flags = XGL_CMD_BUFFER_OPTIMIZE_GPU_SMALL_BATCH_BIT | XGL_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT, }; XGL_RESULT err; + XGL_ATTACHMENT_LOAD_OP load_op = XGL_ATTACHMENT_LOAD_OP_DONT_CARE; + XGL_ATTACHMENT_STORE_OP store_op = XGL_ATTACHMENT_STORE_OP_DONT_CARE; + const XGL_FRAMEBUFFER_CREATE_INFO fb_info = { + .sType = XGL_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, + .pNext = NULL, + .colorAttachmentCount = 1, + .pColorAttachments = (XGL_COLOR_ATTACHMENT_BIND_INFO*) &color_attachment, + .pDepthStencilAttachment = (XGL_DEPTH_STENCIL_BIND_INFO*) &depth_stencil, + .sampleCount = 1, + }; + XGL_RENDER_PASS_CREATE_INFO rp_info; + + memset(&rp_info, 0 , sizeof(rp_info)); + err = xglCreateFramebuffer(demo->device, &fb_info, &(rp_info.framebuffer)); + assert(!err); + rp_info.sType = XGL_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; + rp_info.renderArea.extent.width = demo->width; + rp_info.renderArea.extent.height = demo->height; + rp_info.pColorLoadOps = &load_op; + rp_info.pColorStoreOps = &store_op; + rp_info.depthLoadOp = XGL_ATTACHMENT_LOAD_OP_DONT_CARE; + rp_info.depthStoreOp = XGL_ATTACHMENT_STORE_OP_DONT_CARE; + rp_info.stencilLoadOp = XGL_ATTACHMENT_LOAD_OP_DONT_CARE; + rp_info.stencilStoreOp = XGL_ATTACHMENT_STORE_OP_DONT_CARE; + err = xglCreateRenderPass(demo->device, &rp_info, &(graphics_cmd_buf_info.renderPass)); + assert(!err); err = xglBeginCommandBuffer(demo->cmd, &cmd_buf_info); assert(!err); @@ -304,8 +335,6 @@ static void demo_draw_build_cmd(struct demo *demo) xglCmdBindStateObject(demo->cmd, XGL_STATE_BIND_DEPTH_STENCIL, demo->depth_stencil); - xglCmdBindAttachments(demo->cmd, 1, &color_attachment, &depth_stencil); - clear_range.aspect = XGL_IMAGE_ASPECT_COLOR; clear_range.baseMipLevel = 0; clear_range.mipLevels = 1; diff --git a/demos/tri.c b/demos/tri.c index 75a58e61..6686cd32 100644 --- a/demos/tri.c +++ b/demos/tri.c @@ -96,13 +96,44 @@ static void demo_draw_build_cmd(struct demo *demo) const XGL_FLOAT clear_color[4] = { 0.2f, 0.2f, 0.2f, 0.2f }; const XGL_FLOAT clear_depth = 0.9f; XGL_IMAGE_SUBRESOURCE_RANGE clear_range; + XGL_CMD_BUFFER_GRAPHICS_BEGIN_INFO graphics_cmd_buf_info = { + .sType = XGL_STRUCTURE_TYPE_CMD_BUFFER_GRAPHICS_BEGIN_INFO, + .pNext = NULL, + .operation = XGL_RENDER_PASS_OPERATION_BEGIN_AND_END, + }; XGL_CMD_BUFFER_BEGIN_INFO cmd_buf_info = { .sType = XGL_STRUCTURE_TYPE_CMD_BUFFER_BEGIN_INFO, - .pNext = NULL, + .pNext = &graphics_cmd_buf_info, .flags = XGL_CMD_BUFFER_OPTIMIZE_GPU_SMALL_BATCH_BIT | XGL_CMD_BUFFER_OPTIMIZE_ONE_TIME_SUBMIT_BIT, }; XGL_RESULT err; + XGL_ATTACHMENT_LOAD_OP load_op = XGL_ATTACHMENT_LOAD_OP_DONT_CARE; + XGL_ATTACHMENT_STORE_OP store_op = XGL_ATTACHMENT_STORE_OP_DONT_CARE; + const XGL_FRAMEBUFFER_CREATE_INFO fb_info = { + .sType = XGL_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, + .pNext = NULL, + .colorAttachmentCount = 1, + .pColorAttachments = (XGL_COLOR_ATTACHMENT_BIND_INFO*) &color_attachment, + .pDepthStencilAttachment = (XGL_DEPTH_STENCIL_BIND_INFO*) &depth_stencil, + .sampleCount = 1, + }; + XGL_RENDER_PASS_CREATE_INFO rp_info; + + memset(&rp_info, 0 , sizeof(rp_info)); + err = xglCreateFramebuffer(demo->device, &fb_info, &(rp_info.framebuffer)); + assert(!err); + rp_info.sType = XGL_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; + rp_info.renderArea.extent.width = demo->width; + rp_info.renderArea.extent.height = demo->height; + rp_info.pColorLoadOps = &load_op; + rp_info.pColorStoreOps = &store_op; + rp_info.depthLoadOp = XGL_ATTACHMENT_LOAD_OP_DONT_CARE; + rp_info.depthStoreOp = XGL_ATTACHMENT_STORE_OP_DONT_CARE; + rp_info.stencilLoadOp = XGL_ATTACHMENT_LOAD_OP_DONT_CARE; + rp_info.stencilStoreOp = XGL_ATTACHMENT_STORE_OP_DONT_CARE; + err = xglCreateRenderPass(demo->device, &rp_info, &(graphics_cmd_buf_info.renderPass)); + assert(!err); err = xglBeginCommandBuffer(demo->cmd, &cmd_buf_info); assert(!err); @@ -120,7 +151,6 @@ static void demo_draw_build_cmd(struct demo *demo) xglCmdBindStateObject(demo->cmd, XGL_STATE_BIND_DEPTH_STENCIL, demo->depth_stencil); - xglCmdBindAttachments(demo->cmd, 1, &color_attachment, &depth_stencil); xglCmdBindVertexData(demo->cmd, demo->vertices.mem, 0, 0); |
