lima: move clear into submit (v2)

clear info is needed when submit flush and may be changed after
framebuffer switch, so we need to move it into submit.

This also fixes 5 dEQP tests as a side effect: clear info is per
submit so clear value when one submit won't affect next submit.

v2:
remove fixed dEQP test from CI list.

Reviewed-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Qiang Yu <yuq825@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3755>
This commit is contained in:
Qiang Yu 2020-02-05 20:05:03 +08:00 committed by Marge Bot
parent 4b93792274
commit ed117ee630
5 changed files with 17 additions and 21 deletions

View file

@ -26,11 +26,6 @@ dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_depth_co
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgba_stencil_index8
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_depth_component16
dEQP-GLES2.functional.fbo.render.recreate_colorbuffer.rebind_tex2d_rgb_stencil_index8
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb565_stencil_index8
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgb5_a1_stencil_index8
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.rbo_rgba4_stencil_index8
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgba_stencil_index8
dEQP-GLES2.functional.fbo.render.shared_colorbuffer.tex2d_rgb_stencil_index8
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb565_depth_component16
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgb5_a1_depth_component16
dEQP-GLES2.functional.fbo.render.shared_depthbuffer.rbo_rgba4_depth_component16

View file

@ -38,14 +38,6 @@ struct lima_context_framebuffer {
int shift_min;
};
struct lima_context_clear {
unsigned buffers;
uint32_t color_8pc;
uint32_t depth;
uint32_t stencil;
uint64_t color_16pc;
};
struct lima_depth_stencil_alpha_state {
struct pipe_depth_stencil_alpha_state base;
};
@ -193,7 +185,6 @@ struct lima_context {
struct lima_context_framebuffer framebuffer;
struct lima_context_viewport_state viewport;
struct pipe_scissor_state scissor;
struct lima_context_clear clear;
struct lima_vs_shader_state *vs;
struct lima_fs_shader_state *fs;
struct lima_vertex_element_state *vertex_elements;

View file

@ -114,7 +114,7 @@ lima_clear(struct pipe_context *pctx, unsigned buffers,
}
struct lima_submit *submit = lima_submit_get(ctx);
struct lima_context_clear *clear = &ctx->clear;
struct lima_submit_clear *clear = &submit->clear;
clear->buffers = buffers;
if (buffers & PIPE_CLEAR_COLOR0) {

View file

@ -740,12 +740,12 @@ lima_pack_pp_frame_reg(struct lima_submit *submit, uint32_t *frame_reg,
frame->render_address = screen->pp_buffer->va + pp_frame_rsw_offset;
frame->flags = 0x02;
frame->clear_value_depth = ctx->clear.depth;
frame->clear_value_stencil = ctx->clear.stencil;
frame->clear_value_color = ctx->clear.color_8pc;
frame->clear_value_color_1 = ctx->clear.color_8pc;
frame->clear_value_color_2 = ctx->clear.color_8pc;
frame->clear_value_color_3 = ctx->clear.color_8pc;
frame->clear_value_depth = submit->clear.depth;
frame->clear_value_stencil = submit->clear.stencil;
frame->clear_value_color = submit->clear.color_8pc;
frame->clear_value_color_1 = submit->clear.color_8pc;
frame->clear_value_color_2 = submit->clear.color_8pc;
frame->clear_value_color_3 = submit->clear.color_8pc;
frame->one = 1;
frame->width = fb->base.width - 1;

View file

@ -40,6 +40,14 @@ struct lima_submit_key {
struct pipe_surface *zsbuf;
};
struct lima_submit_clear {
unsigned buffers;
uint32_t color_8pc;
uint32_t depth;
uint32_t stencil;
uint64_t color_16pc;
};
struct lima_submit {
int fd;
struct lima_context *ctx;
@ -58,6 +66,8 @@ struct lima_submit {
int pp_max_stack_size;
struct pipe_scissor_state damage_rect;
struct lima_submit_clear clear;
};
struct lima_submit *lima_submit_get(struct lima_context *ctx);