<!doctype html>
<html>
 <head> 
  <meta charset="UTF-8"> 
 </head>
 <body>
  <div class="default-style">
   Hi there,
  </div> 
  <div class="default-style">
    
  </div> 
  <div class="default-style">
   I'm currently working on a virtio-gpu device implementation and trying to use the virgl_test_server as a rendering backend. The virtio-gpu driver is i a 5.10.something Linux kernel and I'm scratching my head over a particular behavior I'm seeing.
  </div> 
  <div class="default-style">
    
  </div> 
  <div class="default-style">
   virgl_test_server is running in multi-client mode and my virtio-gpu device opens a new connection to the server for each context the Linux driver creates. Resources are all v1 resources without SHM, all transfers are done over the socket connection for now. The socket connections are using protocol version 3, as is required for multi-client mode (why, actually?). This means resource ids are managed by the server, which has caused quite some headscratching as I need to patch the resource ids inside the VCMD stream submitted by the SUBMIT_3D virtio command. That is just a skirmish, however.
  </div> 
  <div class="default-style">
    
  </div> 
  <div class="default-style">
   The actual problem is that the virtio-gpu Linux driver attaches resources to multiple contexts and I'm at a loss how I should handle this, especially since the VTEST protocol does not have a primitive for attaching and detaching resources from contexts. My current implementation is to create and destroy the resources on the server side corresponding to attach/detach commands from virtio-gpu. This gets me as far as running an X server (using glamor), but even running a simple OpenGL program (like es2tri from the mesa-demos) breaks.
  </div> 
  <div class="default-style">
    
  </div> 
  <div class="default-style">
   If anyone can share insight on how this is supposed to work, I'll be all ears.
  </div> 
  <div class="default-style">
    
  </div> 
  <div class="default-style">
   Best regards,
  </div> 
  <div class="default-style">
   Matthias
  </div>
 </body>
</html>