mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-08 09:08:10 +02:00
nvk: use MME shadow RAM in nvk_meta begin/end
We are going to conditionally change SET_ZPASS_PIXEL_COUNT and SET_STATISTICS_COUNTER in queries handling. To prepare for that we now use the MME shadow RAM to restore the previous state. Signed-off-by: Mary Guillemard <mary@mary.zone> Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
This commit is contained in:
parent
cd4c873c12
commit
9d0532a669
1 changed files with 10 additions and 27 deletions
|
|
@ -78,10 +78,9 @@ nvk_meta_begin(struct nvk_cmd_buffer *cmd,
|
|||
{
|
||||
const struct nvk_descriptor_state *desc = &cmd->state.gfx.descriptors;
|
||||
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 6);
|
||||
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 10);
|
||||
P_IMMD(p, NV9097, SET_MME_SHADOW_RAM_CONTROL, MODE_METHOD_PASSTHROUGH);
|
||||
P_IMMD(p, NV9097, SET_RENDER_ENABLE_OVERRIDE, MODE_ALWAYS_RENDER);
|
||||
|
||||
P_IMMD(p, NV9097, SET_STATISTICS_COUNTER, {
|
||||
.da_vertices_generated_enable = false,
|
||||
.da_primitives_generated_enable = false,
|
||||
|
|
@ -99,8 +98,8 @@ nvk_meta_begin(struct nvk_cmd_buffer *cmd,
|
|||
.total_streaming_primitives_needed_succeeded_enable = false,
|
||||
.vtg_primitives_out_enable = false,
|
||||
});
|
||||
|
||||
P_IMMD(p, NV9097, SET_ZPASS_PIXEL_COUNT, false);
|
||||
P_IMMD(p, NV9097, SET_ZPASS_PIXEL_COUNT, ENABLE_FALSE);
|
||||
P_IMMD(p, NV9097, SET_MME_SHADOW_RAM_CONTROL, MODE_METHOD_TRACK_WITH_FILTER);
|
||||
|
||||
save->dynamic = cmd->vk.dynamic_graphics_state;
|
||||
save->_dynamic_vi = cmd->state.gfx._dynamic_vi;
|
||||
|
|
@ -189,29 +188,13 @@ nvk_meta_end(struct nvk_cmd_buffer *cmd,
|
|||
nvk_descriptor_state_set_root_array(cmd, desc, push, 0, sizeof(save->push),
|
||||
save->push);
|
||||
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 6);
|
||||
|
||||
P_IMMD(p, NV9097, SET_ZPASS_PIXEL_COUNT, true);
|
||||
|
||||
P_IMMD(p, NV9097, SET_STATISTICS_COUNTER, {
|
||||
.da_vertices_generated_enable = true,
|
||||
.da_primitives_generated_enable = true,
|
||||
.vs_invocations_enable = true,
|
||||
.gs_invocations_enable = true,
|
||||
.gs_primitives_generated_enable = true,
|
||||
.streaming_primitives_succeeded_enable = true,
|
||||
.streaming_primitives_needed_enable = true,
|
||||
.clipper_invocations_enable = true,
|
||||
.clipper_primitives_generated_enable = true,
|
||||
.ps_invocations_enable = true,
|
||||
.ti_invocations_enable = true,
|
||||
.ts_invocations_enable = true,
|
||||
.ts_primitives_generated_enable = true,
|
||||
.total_streaming_primitives_needed_succeeded_enable = true,
|
||||
.vtg_primitives_out_enable = true,
|
||||
});
|
||||
|
||||
/* Replay the previous state from shadow RAM */
|
||||
struct nv_push *p = nvk_cmd_buffer_push(cmd, 10);
|
||||
P_IMMD(p, NV9097, SET_MME_SHADOW_RAM_CONTROL, MODE_METHOD_REPLAY);
|
||||
P_IMMD(p, NV9097, SET_ZPASS_PIXEL_COUNT, ENABLE_FALSE);
|
||||
P_IMMD(p, NV9097, SET_STATISTICS_COUNTER, {});
|
||||
P_IMMD(p, NV9097, SET_RENDER_ENABLE_OVERRIDE, MODE_USE_RENDER_ENABLE);
|
||||
P_IMMD(p, NV9097, SET_MME_SHADOW_RAM_CONTROL, MODE_METHOD_TRACK_WITH_FILTER);
|
||||
}
|
||||
|
||||
VKAPI_ATTR void VKAPI_CALL
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue