A sync-only job is meant to provide a synchronization point on a queue, so we can't return a NULL fence there, we have to add a signal operation to the command stream which executes after all other previously submitted jobs are done. v2: - Fixed a UAF bug - Added R-bs
Showing the changes to include/uapi (1 of 2 files). Show all
Unified · Split
| @@ -802,6 +802,9 @@ struct drm_panthor_queue_submit { · 801 unmodified lines | ||
| 802 | 802 | * Must be 64-bit/8-byte aligned (the size of a CS instruction) |
| 803 | 803 | * |
| 804 | 804 | * Can be zero if stream_addr is zero too. |
| 805 | + * | |
| 806 | + * When the stream size is zero, the queue submit serves as a | |
| 807 | + * synchronization point. | |
| 805 | 808 | */ |
| 806 | 809 | __u32 stream_size; |
| 807 | 810 | |
| @@ -822,6 +825,8 @@ struct drm_panthor_queue_submit { · 14 unmodified lines | ||
| 822 | 825 | * ensure the GPU doesn't get garbage when reading the indirect command |
| 823 | 826 | * stream buffers. If you want the cache flush to happen |
| 824 | 827 | * unconditionally, pass a zero here. |
| 828 | + * | |
| 829 | + * Ignored when stream_size is zero. | |
| 825 | 830 | */ |
| 826 | 831 | __u32 latest_flush; |
| 827 | 832 | |