radeon/vce: move destroy command before feedback command
authorLeo Liu <leo.liu@amd.com>
Thu, 7 Dec 2017 17:04:59 +0000 (12:04 -0500)
committerLeo Liu <leo.liu@amd.com>
Fri, 8 Dec 2017 17:56:48 +0000 (12:56 -0500)
VCE processing IBs starts from session and task info at first level,
other commands processed subsequently. The task info for destroy is
embedded to destroy command, resulting that feedback command is not
properly procoessed. This is causing kernel spin VM fault messages on
Polaris and Vega10 card when running ends at encode application.

The fix is also verified on VCE physical mode card.

Signed-off-by: Leo Liu <leo.liu@amd.com>
Cc: mesa-stable@lists.freedesktop.org
Acked-by: Christian König <christian.koenig@amd.com>
src/gallium/drivers/radeon/radeon_vce.c

index 69e602210b33769357659c4e72681791fb3b8497..427bf01ed8a3f75f9d6179bf41736941841386e7 100644 (file)
@@ -246,8 +246,8 @@ static void rvce_destroy(struct pipe_video_codec *encoder)
                si_vid_create_buffer(enc->screen, &fb, 512, PIPE_USAGE_STAGING);
                enc->fb = &fb;
                enc->session(enc);
-               enc->feedback(enc);
                enc->destroy(enc);
+               enc->feedback(enc);
                flush(enc);
                si_vid_destroy_buffer(&fb);
        }