On Wed, Oct 3, 2018 at 8:23 AM Alex Smith <[email protected]>
wrote:

> Fixes a crash I see on Broadwell.
>
> Tested-by: Alex Smith <[email protected]>
>

Thanks!


> Cc to stable for 18.2? The crash is reproducible there as well.
>

The "Fixes:" tag should take care of that.

--Jason


> On Tue, 2 Oct 2018 at 23:25, Jason Ekstrand <[email protected]> wrote:
>
>> Previously, we just went ahead and emitted MI_BATCH_BUFFER_START as
>> normal.  If we are near enough to the end, this can cause us to start a
>> new BO just for the MI_BATCH_BUFFER_START which messes up chaining.  We
>> always reserve enough space at the end for an MI_BATCH_BUFFER_START so
>> we can just increment cmd_buffer->batch.end prior to emitting the
>> command.
>>
>> Fixes: a0b133286a3 "anv/batch_chain: Simplify secondary batch return..."
>> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=107926
>> ---
>>  src/intel/vulkan/anv_batch_chain.c | 9 +++++++++
>>  1 file changed, 9 insertions(+)
>>
>> diff --git a/src/intel/vulkan/anv_batch_chain.c
>> b/src/intel/vulkan/anv_batch_chain.c
>> index 3e13553ac18..e08e07ad7bd 100644
>> --- a/src/intel/vulkan/anv_batch_chain.c
>> +++ b/src/intel/vulkan/anv_batch_chain.c
>> @@ -894,8 +894,17 @@ anv_cmd_buffer_end_batch_buffer(struct
>> anv_cmd_buffer *cmd_buffer)
>>            * It doesn't matter where it points now so long as has a valid
>>            * relocation.  We'll adjust it later as part of the chaining
>>            * process.
>> +          *
>> +          * We set the end of the batch a little short so we would be
>> sure we
>> +          * have room for the chaining command.  Since we're about to
>> emit the
>> +          * chaining command, let's set it back where it should go.
>>            */
>> +         cmd_buffer->batch.end += GEN8_MI_BATCH_BUFFER_START_length * 4;
>> +         assert(cmd_buffer->batch.start == batch_bo->bo.map);
>> +         assert(cmd_buffer->batch.end == batch_bo->bo.map +
>> batch_bo->bo.size);
>> +
>>           emit_batch_buffer_start(cmd_buffer, &batch_bo->bo, 0);
>> +         assert(cmd_buffer->batch.start == batch_bo->bo.map);
>>        } else {
>>           cmd_buffer->exec_mode = ANV_CMD_BUFFER_EXEC_MODE_COPY_AND_CHAIN;
>>        }
>> --
>> 2.17.1
>>
>> _______________________________________________
>> 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