pvr: Handle DISABLE_PIXELMERGE

Signed-off-by: Simon Perretta <simon.perretta@imgtec.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31679>
This commit is contained in:
Karmjit Mahil 2023-10-05 16:36:12 +01:00 committed by Marge Bot
parent 13e85fa911
commit e23123b7f6
6 changed files with 12 additions and 0 deletions

View file

@ -1740,6 +1740,9 @@ static VkResult pvr_sub_cmd_gfx_job_init(const struct pvr_device_info *dev_info,
job->run_frag = true;
job->geometry_terminate = true;
/* TODO: Enable pixel merging when it's safe to do. */
job->disable_pixel_merging = true;
return VK_SUCCESS;
}

View file

@ -1493,6 +1493,7 @@ pvr_frag_state_flags_init(const struct pvr_render_job *const job,
.use_single_core = job->frag_uses_atomic_ops,
.get_vis_results = job->get_vis_results,
.has_spm_scratch_buffer = job->requires_spm_scratch_buffer,
.disable_pixel_merging = job->disable_pixel_merging,
};
}

View file

@ -83,6 +83,7 @@ struct pvr_render_job {
bool has_depth_attachment : 1;
bool has_stencil_attachment : 1;
bool requires_spm_scratch_buffer : 1;
bool disable_pixel_merging : 1;
};
uint32_t pds_pixel_event_data_offset;

View file

@ -454,6 +454,9 @@ static uint32_t pvr_winsys_frag_flags_to_drm(
if (ws_flags->has_spm_scratch_buffer)
flags |= DRM_PVR_SUBMIT_JOB_FRAG_CMD_SCRATCHBUFFER;
if (ws_flags->disable_pixel_merging)
flags |= DRM_PVR_SUBMIT_JOB_FRAG_CMD_DISABLE_PIXELMERGE;
return flags;
}

View file

@ -341,6 +341,7 @@ struct pvr_winsys_render_submit_info {
bool use_single_core : 1;
bool get_vis_results : 1;
bool has_spm_scratch_buffer : 1;
bool disable_pixel_merging : 1;
} flags;
struct vk_sync *wait;

View file

@ -921,6 +921,9 @@ pvr_srv_fragment_cmd_init(struct rogue_fwif_cmd_3d *cmd,
if (state->flags.has_spm_scratch_buffer)
cmd->flags |= ROGUE_FWIF_RENDERFLAGS_SPMSCRATCHBUFFER;
if (state->flags.disable_pixel_merging)
cmd->flags |= ROGUE_FWIF_RENDERFLAGS_DISABLE_PIXELMERGE;
}
VkResult pvr_srv_winsys_render_submit(