mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 07:28:11 +02:00
i965: Move brw_emit_query_begin() to the render ring prelude.
Without hardware contexts, the pipeline statistics registers are free-running and include data from every 3D application running. In order to find out the contributions of one particular context, we need to take a snapshot at the start and end of each batch. Previously, we emitted the PIPE_CONTROL necessary to capture PS_DEPTH_COUNT when drawing primitives. Special tracking ensured it happened only on the first draw of the batch, rather than on every draw. Moving this to brw_new_batch increases symmetry, since the final snapshot has always been in brw_finish_batch, which is just a few lines below. It should be basically equivalent. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
parent
bb9d2eab89
commit
a4bf7f6b6e
2 changed files with 8 additions and 2 deletions
|
|
@ -614,8 +614,6 @@ static void brw_emit_vertices(struct brw_context *brw)
|
|||
|
||||
brw_prepare_vertices(brw);
|
||||
|
||||
brw_emit_query_begin(brw);
|
||||
|
||||
nr_elements = brw->vb.nr_enabled + brw->vs.prog_data->uses_vertexid;
|
||||
|
||||
/* If the VS doesn't read any inputs (calculating vertex position from
|
||||
|
|
|
|||
|
|
@ -182,6 +182,11 @@ do_batch_dump(struct brw_context *brw)
|
|||
void
|
||||
intel_batchbuffer_emit_render_ring_prelude(struct brw_context *brw)
|
||||
{
|
||||
/* Without hardware contexts, we need to capture the pipeline statistics
|
||||
* registers at the start and end of each render ring batch, so we can see
|
||||
* what that batch contributed. Emit state packets to write them to a BO.
|
||||
*/
|
||||
brw_emit_query_begin(brw);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -234,6 +239,9 @@ brw_new_batch(struct brw_context *brw)
|
|||
static void
|
||||
brw_finish_batch(struct brw_context *brw)
|
||||
{
|
||||
/* Capture the closing pipeline statistics register values necessary to
|
||||
* support query objects (in the non-hardware context world).
|
||||
*/
|
||||
brw_emit_query_end(brw);
|
||||
|
||||
if (brw->curbe.curbe_bo) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue