On Tuesday, May 8, 2018 10:09:30 AM PDT Lionel Landwerlin wrote: > We want to make sure that all indirect state data has been loaded into > the EUs before disable the pointers. > > Signed-off-by: Lionel Landwerlin <lionel.g.landwer...@intel.com> > Fixes: 78c125af3904c ("anv/gen10: Ignore push constant packets during context > restore.") > --- > src/intel/vulkan/genX_cmd_buffer.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/src/intel/vulkan/genX_cmd_buffer.c > b/src/intel/vulkan/genX_cmd_buffer.c > index 2882cf36506..526e18af108 100644 > --- a/src/intel/vulkan/genX_cmd_buffer.c > +++ b/src/intel/vulkan/genX_cmd_buffer.c > @@ -1420,14 +1420,21 @@ genX(BeginCommandBuffer)( > * context restore, so the mentioned hang doesn't happen. However, > * software must program push constant commands for all stages prior to > * rendering anything. So we flag them dirty in BeginCommandBuffer. > + * > + * Finally, we also make sure to stall at pixel scoreboard to make sure the > + * constants have been loaded into the EUs prior to disable the push > constants > + * so that it doesn't hang a previous 3DPRIMITIVE. > */ > static void > emit_isp_disable(struct anv_cmd_buffer *cmd_buffer) > { > anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) { > - pc.IndirectStatePointersDisable = true; > + pc.StallAtPixelScoreboard = true; > pc.CommandStreamerStallEnable = true; > } > + anv_batch_emit(&cmd_buffer->batch, GENX(PIPE_CONTROL), pc) { > + pc.IndirectStatePointersDisable = true; > + } > } > > VkResult >
Compared to GL, this is missing the immediate write. Not sure if that matters or not. On Haswell, it's also missing a register write.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev