pvr: add handling for retry error in pvr_srv_rgx_submit_transfer2()
The caller of pvr_srv_rgx_submit_transfer2() handles VK_NOT_READY, but pvr_srv_rgx_submit_transfer2() would never return this error as it was missing handling for retry errors returned by the PVR_SRV_BRIDGE_RGXTQ_RGXSUBMITTRANSFER2 bridge call. This resulted in pvr_srv_rgx_submit_transfer2() returning VK_ERROR_OUT_OF_DEVICE_MEMORY, which was treated as a device lost error by callers further up the stack. Fixes a hang seen with a release/debugoptimized build when running KHR-GLES3.copy_tex_image_conversions.required.cubemap_negy_cubemap_negy as part of a batch of tests. Signed-off-by: Frank Binns <frank.binns@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:
@@ -1028,6 +1028,10 @@ VkResult pvr_srv_rgx_submit_transfer2(int fd,
|
||||
&ret,
|
||||
sizeof(ret));
|
||||
if (result || ret.error != PVR_SRV_OK) {
|
||||
/* There is no 'retry' VkResult, so treat it as VK_NOT_READY instead. */
|
||||
if (result == PVR_SRV_ERROR_RETRY || ret.error == PVR_SRV_ERROR_RETRY)
|
||||
return VK_NOT_READY;
|
||||
|
||||
return vk_bridge_err(VK_ERROR_OUT_OF_DEVICE_MEMORY,
|
||||
"PVR_SRV_BRIDGE_RGXTQ_RGXSUBMITTRANSFER2",
|
||||
ret);
|
||||
|
||||
Reference in New Issue
Block a user