anv/clear: Only clear the render area when doing subpass clears
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com>
This commit is contained in:
@@ -709,10 +709,7 @@ anv_cmd_buffer_clear_subpass(struct anv_cmd_buffer *cmd_buffer)
|
|||||||
anv_finishme("clearing multi-layer framebuffer");
|
anv_finishme("clearing multi-layer framebuffer");
|
||||||
|
|
||||||
VkClearRect clear_rect = {
|
VkClearRect clear_rect = {
|
||||||
.rect = {
|
.rect = cmd_state->render_area,
|
||||||
.offset = { 0, 0 },
|
|
||||||
.extent = { fb->width, fb->height },
|
|
||||||
},
|
|
||||||
.baseArrayLayer = 0,
|
.baseArrayLayer = 0,
|
||||||
.layerCount = 1, /* FINISHME: clear multi-layer framebuffer */
|
.layerCount = 1, /* FINISHME: clear multi-layer framebuffer */
|
||||||
};
|
};
|
||||||
|
@@ -1174,6 +1174,7 @@ struct anv_cmd_state {
|
|||||||
struct anv_framebuffer * framebuffer;
|
struct anv_framebuffer * framebuffer;
|
||||||
struct anv_render_pass * pass;
|
struct anv_render_pass * pass;
|
||||||
struct anv_subpass * subpass;
|
struct anv_subpass * subpass;
|
||||||
|
VkRect2D render_area;
|
||||||
uint32_t restart_index;
|
uint32_t restart_index;
|
||||||
struct anv_vertex_binding vertex_bindings[MAX_VBS];
|
struct anv_vertex_binding vertex_bindings[MAX_VBS];
|
||||||
struct anv_descriptor_set * descriptors[MAX_SETS];
|
struct anv_descriptor_set * descriptors[MAX_SETS];
|
||||||
|
@@ -1100,6 +1100,7 @@ void genX(CmdBeginRenderPass)(
|
|||||||
|
|
||||||
cmd_buffer->state.framebuffer = framebuffer;
|
cmd_buffer->state.framebuffer = framebuffer;
|
||||||
cmd_buffer->state.pass = pass;
|
cmd_buffer->state.pass = pass;
|
||||||
|
cmd_buffer->state.render_area = pRenderPassBegin->renderArea;
|
||||||
anv_cmd_state_setup_attachments(cmd_buffer, pRenderPassBegin);
|
anv_cmd_state_setup_attachments(cmd_buffer, pRenderPassBegin);
|
||||||
|
|
||||||
genX(flush_pipeline_select_3d)(cmd_buffer);
|
genX(flush_pipeline_select_3d)(cmd_buffer);
|
||||||
|
Reference in New Issue
Block a user