On 17/11/17 17:57, Kristian Høgsberg wrote:
On Fri, Nov 17, 2017 at 9:48 AM, Lionel Landwerlin
<[email protected]> wrote:
When the kernel support flagging our BO, let's mark batch &
instruction BOs for capture so then can be included in the error
state.

Signed-off-by: Lionel Landwerlin <[email protected]>
---
  src/intel/vulkan/anv_device.c  | 6 ++++--
  src/intel/vulkan/anv_private.h | 1 +
  2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 35bccaee6d2..28e2b1923be 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -362,6 +362,7 @@ anv_physical_device_init(struct anv_physical_device *device,
        goto fail;

     device->has_exec_async = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_ASYNC);
+   device->has_exec_capture = anv_gem_get_param(fd, 
I915_PARAM_HAS_EXEC_CAPTURE);
     device->has_exec_fence = anv_gem_get_param(fd, I915_PARAM_HAS_EXEC_FENCE);
     device->has_syncobj = anv_gem_get_param(fd, 
I915_PARAM_HAS_EXEC_FENCE_ARRAY);
     device->has_syncobj_wait = device->has_syncobj &&
@@ -1213,7 +1214,8 @@ VkResult anv_CreateDevice(

     uint64_t bo_flags =
        physical_device->supports_48bit_addresses ? 
EXEC_OBJECT_SUPPORTS_48B_ADDRESS : 0 |
-      physical_device->has_exec_async ? EXEC_OBJECT_ASYNC : 0;
+      physical_device->has_exec_async ? EXEC_OBJECT_ASYNC : 0 |
+      physical_device->has_exec_capture ? EXEC_OBJECT_CAPTURE : 0;

     anv_bo_pool_init(&device->batch_bo_pool, device, bo_flags);

@@ -1230,7 +1232,7 @@ VkResult anv_CreateDevice(
        goto fail_bo_cache;

     result = anv_state_pool_init(&device->instruction_state_pool, device, 
16384,
-                                bo_flags);
+                                bo_flags | EXEC_OBJECT_CAPTURE);
Should this be conditional on physical_device->has_exec_capture?

Oops, indeed!


     if (result != VK_SUCCESS)
        goto fail_dynamic_state_pool;

diff --git a/src/intel/vulkan/anv_private.h b/src/intel/vulkan/anv_private.h
index f9770788a6d..6d4e43f2e68 100644
--- a/src/intel/vulkan/anv_private.h
+++ b/src/intel/vulkan/anv_private.h
@@ -773,6 +773,7 @@ struct anv_physical_device {
      struct isl_device                           isl_dev;
      int                                         cmd_parser_version;
      bool                                        has_exec_async;
+    bool                                        has_exec_capture;
      bool                                        has_exec_fence;
      bool                                        has_syncobj;
      bool                                        has_syncobj_wait;
--
2.15.0

_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev
_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev


_______________________________________________
mesa-dev mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to