diff --git a/src/freedreno/drm/freedreno_drmif.h b/src/freedreno/drm/freedreno_drmif.h index 41ea98e9d77..9f5058c2a4c 100644 --- a/src/freedreno/drm/freedreno_drmif.h +++ b/src/freedreno/drm/freedreno_drmif.h @@ -72,6 +72,7 @@ enum fd_param_id { #define FD_BO_PREP_READ BITSET_BIT(0) #define FD_BO_PREP_WRITE BITSET_BIT(1) #define FD_BO_PREP_NOSYNC BITSET_BIT(2) +#define FD_BO_PREP_FLUSH BITSET_BIT(3) /* device functions: diff --git a/src/gallium/drivers/freedreno/freedreno_query_acc.c b/src/gallium/drivers/freedreno/freedreno_query_acc.c index c1db0f528d8..77268e6ab7c 100644 --- a/src/gallium/drivers/freedreno/freedreno_query_acc.c +++ b/src/gallium/drivers/freedreno/freedreno_query_acc.c @@ -170,7 +170,7 @@ fd_acc_get_query_result(struct fd_context *ctx, struct fd_query *q, bool wait, } ret = fd_resource_wait( - ctx, rsc, FD_BO_PREP_READ | FD_BO_PREP_NOSYNC); + ctx, rsc, FD_BO_PREP_READ | FD_BO_PREP_NOSYNC | FD_BO_PREP_FLUSH); if (ret) return false; diff --git a/src/gallium/drivers/freedreno/freedreno_query_hw.c b/src/gallium/drivers/freedreno/freedreno_query_hw.c index b70156a6beb..feab589e677 100644 --- a/src/gallium/drivers/freedreno/freedreno_query_hw.c +++ b/src/gallium/drivers/freedreno/freedreno_query_hw.c @@ -229,7 +229,7 @@ fd_hw_get_query_result(struct fd_context *ctx, struct fd_query *q, bool wait, return false; ret = fd_resource_wait( - ctx, rsc, FD_BO_PREP_READ | FD_BO_PREP_NOSYNC); + ctx, rsc, FD_BO_PREP_READ | FD_BO_PREP_NOSYNC | FD_BO_PREP_FLUSH); if (ret) return false;