OSDN Git Service

anv/query: Invalidate the correct range
authorJason Ekstrand <jason.ekstrand@intel.com>
Wed, 15 Mar 2017 01:02:41 +0000 (18:02 -0700)
committerAndres Gomez <agomez@igalia.com>
Wed, 29 Mar 2017 16:12:18 +0000 (19:12 +0300)
Reviewed-By: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Cc: "17.0 13.0" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 81840130c0f147ed6ae4c26872c2f04a2167bc54)
[Andres Gomez: use anv_query.c instead of genX_query.c]
Signed-off-by: Andres Gomez <agomez@igalia.com>
Conflicts:
src/intel/vulkan/genX_query.c

src/intel/vulkan/anv_query.c

index 6fe94b0..ac7f652 100644 (file)
@@ -129,8 +129,12 @@ VkResult anv_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) {