diff options
author | Tapani Pälli <[email protected]> | 2019-04-05 08:55:18 +0300 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2019-04-04 23:35:24 -0700 |
commit | 361f3d19f1fe09852900369ea7c4e9d8d5df4be3 (patch) | |
tree | 165812bc736249d141b722bc038f1c6af2a9c947 /src/gallium/drivers | |
parent | 276d22c52dd9c50a2b2becd13c702fbb801a7e17 (diff) |
iris: handle aux properly in iris_resource_get_handle
Disable aux when resource seen the first time and EXPLICIT_FLUSH
not being set. This fixes issues seen when launching Xorg and
CCS_E getting utilized.
Signed-off-by: Tapani Pälli <[email protected]>
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/gallium/drivers')
-rw-r--r-- | src/gallium/drivers/iris/iris_resource.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/gallium/drivers/iris/iris_resource.c b/src/gallium/drivers/iris/iris_resource.c index d0a473fd72a..fc093110fb2 100644 --- a/src/gallium/drivers/iris/iris_resource.c +++ b/src/gallium/drivers/iris/iris_resource.c @@ -839,6 +839,14 @@ iris_resource_get_handle(struct pipe_screen *pscreen, { struct iris_resource *res = (struct iris_resource *)resource; + /* Disable aux usage if explicit flush not set and this is the + * first time we are dealing with this resource. + */ + if ((!(usage & PIPE_HANDLE_USAGE_EXPLICIT_FLUSH) && res->aux.usage != 0)) { + if (p_atomic_read(&resource->reference.count) == 1) + iris_resource_disable_aux(res); + } + /* If this is a buffer, stride should be 0 - no need to special case */ whandle->stride = res->surf.row_pitch_B; whandle->modifier = |