diff options
author | Kenneth Graunke <[email protected]> | 2019-04-12 11:55:38 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-04-14 19:58:04 -0700 |
commit | 8bf9b7b5b6e28aad7c0635fab7aa611f86be8d79 (patch) | |
tree | fd17b60da6dff3337848b751b4c9ced3663a2cfe /src/intel | |
parent | 47709ca1465162160dacf2fdb8645b7afb58dcd9 (diff) |
intel: Emit 3DSTATE_VF_STATISTICS dynamically
Pipeline statistics queries should not count BLORP's rectangles.
(23) How do operations like Clear, TexSubImage, etc. affect the
results of the newly introduced queries?
DISCUSSION: Implementations might require "helper" rendering
commands be issued to implement certain operations like Clear,
TexSubImage, etc.
RESOLVED: They don't. Only application submitted rendering
commands should have an effect on the results of the queries.
Piglit's arb_pipeline_statistics_query-vert_adj exposes this bug when
the driver is hacked to always perform glBufferData via a GPU staging
copy (for debugging purposes).
Reviewed-by: Jason Ekstrand <[email protected]>
Reviewed-by: Lionel Landwerlin <[email protected]>
Diffstat (limited to 'src/intel')
-rw-r--r-- | src/intel/blorp/blorp_genX_exec.h | 4 | ||||
-rw-r--r-- | src/intel/vulkan/genX_blorp_exec.c | 5 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/intel/blorp/blorp_genX_exec.h b/src/intel/blorp/blorp_genX_exec.h index 152f40d9338..c3bf92c9148 100644 --- a/src/intel/blorp/blorp_genX_exec.h +++ b/src/intel/blorp/blorp_genX_exec.h @@ -513,6 +513,10 @@ blorp_emit_vertex_elements(struct blorp_batch *batch, dw += GENX(VERTEX_ELEMENT_STATE_length); } + blorp_emit(batch, GENX(3DSTATE_VF_STATISTICS), vf) { + vf.StatisticsEnable = false; + } + #if GEN_GEN >= 8 /* Overwrite Render Target Array Index (2nd dword) in the VUE header with * primitive instance identifier. This is used for layered clears. diff --git a/src/intel/vulkan/genX_blorp_exec.c b/src/intel/vulkan/genX_blorp_exec.c index e9c85d56d5f..1592e7f7e3d 100644 --- a/src/intel/vulkan/genX_blorp_exec.c +++ b/src/intel/vulkan/genX_blorp_exec.c @@ -258,11 +258,6 @@ genX(blorp_exec)(struct blorp_batch *batch, */ genX(cmd_buffer_enable_pma_fix)(cmd_buffer, false); - /* Disable VF statistics */ - blorp_emit(batch, GENX(3DSTATE_VF_STATISTICS), vf) { - vf.StatisticsEnable = false; - } - blorp_exec(batch, params); cmd_buffer->state.gfx.vb_dirty = ~0; |