Am 20.04.22 um 21:28 schrieb Zack Rusin:
[SNIP]
To figure out what it is could you try the following code fragment:
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c
b/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c
index f46891012be3..a36f89d3f36d 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_validation.c
@@ -288,7 +288,7 @@ int vmw_validation_add_bo(struct
vmw_validation_context *ctx,
val_buf->bo = ttm_bo_get_unless_zero(&vbo->base);
if (!val_buf->bo)
return -ESRCH;
- val_buf->num_shared = 0;
+ val_buf->num_shared = 16;
list_add_tail(&val_buf->head, &ctx->bo_list);
bo_node->as_mob = as_mob;
bo_node->cpu_blit = cpu_blit;
Fails the same BUG_ON with num_fences and max_fences == 0.
Thanks for testing this.
So the buffer object is not reserved through
vmw_validation_bo_reserve(), but comes from somewhere else.
Unfortunately I absolutely can't find where that's coming from.
Do you have some documentation howto setup vmwgfx? E.g. sample VM which
I can download somewhere etc..
Thanks,
Christian.
z