iris: Fix aux assertion in resource_get_handle
authorNanley Chery <nanley.g.chery@intel.com>
Wed, 17 Jul 2019 20:19:43 +0000 (13:19 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 3 Sep 2020 23:43:02 +0000 (23:43 +0000)
iris_resource_get_handle currently asserts that the resource has an aux
state that is suitable for sharing. However, the caller of this function
can pass a flag to specify that it will handle flushing/resolving the
resource as needed for sharing. Take this flag into account when
asserting the state of the aux buffer.

Fixes: e81392868e6 ("iris/resource: Drop redundant checks for aux support")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/128
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/1371>

src/gallium/drivers/iris/iris_resource.c

index 212fa803ceac20c3eb6216c0009b2c0636d8942f..f1040073ed6c72c9cc0e4e4513c19b46877f0f26 100644 (file)
@@ -1183,6 +1183,7 @@ iris_resource_get_handle(struct pipe_screen *pscreen,
 
 #ifndef NDEBUG
    enum isl_aux_usage allowed_usage =
+      usage & PIPE_HANDLE_USAGE_EXPLICIT_FLUSH ? res->aux.usage :
       res->mod_info ? res->mod_info->aux_usage : ISL_AUX_USAGE_NONE;
 
    if (res->aux.usage != allowed_usage) {