[Mesa-dev] [PATCH 2/2] anv: flag batch & instruction BOs for capture

Lionel Landwerlin lionel.g.landwerlin at intel.com
Fri Nov 17 17:58:09 UTC 2017


On 17/11/17 17:57, Kristian Høgsberg wrote:
> On Fri, Nov 17, 2017 at 9:48 AM, Lionel Landwerlin
> <lionel.g.landwerlin at intel.com> 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 <lionel.g.landwerlin at intel.com>
>> ---
>>   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
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev




More information about the mesa-dev mailing list