mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-07 04:58:05 +02:00
anv/gen8: Stall when needed in Cmd(Set|Reset)Event
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
Reviewed-by: Chad Versace <chadversary@chromium.org>
Cc: "13.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 71397042fe)
This commit is contained in:
parent
64d7d70c5b
commit
1ba7f6ce38
1 changed files with 29 additions and 0 deletions
|
|
@ -513,6 +513,25 @@ genX(cmd_buffer_emit_hz_op)(struct anv_cmd_buffer *cmd_buffer,
|
|||
}
|
||||
}
|
||||
|
||||
/* Set of stage bits for which are pipelined, i.e. they get queued by the
|
||||
* command streamer for later execution.
|
||||
*/
|
||||
#define ANV_PIPELINE_STAGE_PIPELINED_BITS \
|
||||
(VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | \
|
||||
VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | \
|
||||
VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT | \
|
||||
VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT | \
|
||||
VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT | \
|
||||
VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | \
|
||||
VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | \
|
||||
VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | \
|
||||
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | \
|
||||
VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | \
|
||||
VK_PIPELINE_STAGE_TRANSFER_BIT | \
|
||||
VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT | \
|
||||
VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT | \
|
||||
VK_PIPELINE_STAGE_ALL_COMMANDS_BIT)
|
||||
|
||||
void genX(CmdSetEvent)(
|
||||
VkCommandBuffer commandBuffer,
|
||||
VkEvent _event,
|
||||
|
|
@ -522,6 +541,11 @@ void genX(CmdSetEvent)(
|
|||
ANV_FROM_HANDLE(anv_event, event, _event);
|
||||
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) {
|
||||
if (stageMask & ANV_PIPELINE_STAGE_PIPELINED_BITS) {
|
||||
pc.StallAtPixelScoreboard = true;
|
||||
pc.CommandStreamerStallEnable = true;
|
||||
}
|
||||
|
||||
pc.DestinationAddressType = DAT_PPGTT,
|
||||
pc.PostSyncOperation = WriteImmediateData,
|
||||
pc.Address = (struct anv_address) {
|
||||
|
|
@ -541,6 +565,11 @@ void genX(CmdResetEvent)(
|
|||
ANV_FROM_HANDLE(anv_event, event, _event);
|
||||
|
||||
anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) {
|
||||
if (stageMask & ANV_PIPELINE_STAGE_PIPELINED_BITS) {
|
||||
pc.StallAtPixelScoreboard = true;
|
||||
pc.CommandStreamerStallEnable = true;
|
||||
}
|
||||
|
||||
pc.DestinationAddressType = DAT_PPGTT;
|
||||
pc.PostSyncOperation = WriteImmediateData;
|
||||
pc.Address = (struct anv_address) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue