broadcom/vc5: Switch to setting the primitive list format in the RCL.

This means that we get a single copy of it emitted, instead of once at the
start of each tile (though it's still executed once per tile).  Fixes
assertion failures with the updated simulator.
This commit is contained in:
Eric Anholt 2017-12-20 17:19:23 -08:00
parent 7d8b19f0dd
commit ac4054ca17
2 changed files with 8 additions and 5 deletions

View file

@ -101,11 +101,6 @@ vc5_start_draw(struct vc5_context *vc5)
*/
cl_emit(&job->bcl, START_TILE_BINNING, bin);
cl_emit(&job->bcl, PRIMITIVE_LIST_FORMAT, fmt) {
fmt.data_type = LIST_INDEXED;
fmt.primitive_type = LIST_TRIANGLES;
}
job->needs_flush = true;
job->draw_width = vc5->framebuffer.width;
job->draw_height = vc5->framebuffer.height;

View file

@ -152,6 +152,14 @@ vc5_rcl_emit_generic_per_tile_list(struct vc5_job *job, int last_cbuf)
*/
cl_emit(cl, TILE_COORDINATES_IMPLICIT, coords);
/* The binner starts out writing tiles assuming that the initial mode
* is triangles, so make sure that's the case.
*/
cl_emit(cl, PRIMITIVE_LIST_FORMAT, fmt) {
fmt.data_type = LIST_INDEXED;
fmt.primitive_type = LIST_TRIANGLES;
}
cl_emit(cl, BRANCH_TO_IMPLICIT_TILE_LIST, branch);
bool needs_color_clear = job->cleared & pipe_clear_color_buffers;