anv/query: Invalidate the correct range
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 15 Mar 2017 01:02:41 +0000 (18:02 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 16 Mar 2017 22:08:17 +0000 (15:08 -0700)
Reviewed-By: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: "17.0 13.0" <mesa-stable@lists.freedesktop.org>
src/intel/vulkan/genX_query.c

index 4e6638a0aeb09578d3ec1754009f97ab67a95aa6..72ac2cb67741c3524a632e4f9ffc675fc9b6433e 100644 (file)
@@ -132,8 +132,12 @@ VkResult genX(GetQueryPoolResults)(
    void *data_end = pData + dataSize;
    struct anv_query_pool_slot *slot = pool->bo.map;
 
-   if (!device->info.has_llc)
-      anv_invalidate_range(slot, MIN2(queryCount * sizeof(*slot), pool->bo.size));
+   if (!device->info.has_llc) {
+      uint64_t offset = firstQuery * sizeof(*slot);
+      uint64_t size = queryCount * sizeof(*slot);
+      anv_invalidate_range(pool->bo.map + offset,
+                           MIN2(size, pool->bo.size - offset));
+   }
 
    for (uint32_t i = 0; i < queryCount; i++) {
       switch (pool->type) {