demos: Remove CmdBindAttachments() for tiler Gpus
authorJon Ashburn <jon@lunarg.com>
Sat, 3 Jan 2015 01:24:05 +0000 (18:24 -0700)
committerCourtney Goeltzenleuchter <courtney@LunarG.com>
Thu, 5 Feb 2015 00:58:08 +0000 (17:58 -0700)
demos/cube.c
demos/tri.c

index a3c6659a0a20cd5d47b01fa6ec250ad6fb1485a7..14c1a5c714bf5fdff258c72436551c643a046875 100644 (file)
@@ -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;
index 75a58e61b4ff685151ad68b78574556802751cf9..6686cd32db0dd6fece21b069f2f43b109af7713a 100644 (file)
@@ -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);