aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJon Ashburn <jon@lunarg.com>2015-01-02 18:24:05 -0700
committerCourtney Goeltzenleuchter <courtney@LunarG.com>2015-02-04 17:58:08 -0700
commit08f6eb93078182c37fb27ab3e5193430758f2805 (patch)
treea60f0f9c45cfd69a78bdd001c383403520b5269b
parentf2d4bf111cb22c1366a066d7b9c0b4ee941a9e71 (diff)
downloadusermoji-08f6eb93078182c37fb27ab3e5193430758f2805.tar.xz
demos: Remove CmdBindAttachments() for tiler Gpus
-rw-r--r--demos/cube.c35
-rw-r--r--demos/tri.c34
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);