On Wed, Jan 12, 2022 at 11:55:07AM -0800, Iouri Tarassov wrote: > - Handle opening of the device (/dev/dxg) file object and creation of > dxgprocess. dxgprocess is created for each process, which opens /dev/dxg. > dxgprocess is ref counted, so the exicting dxgprocess objects is used for > a process, which opens the device object multiple time. > dxgprocess is destroyed when the device object is closed. > > - Implement ioctls for virtual GPU adapter enumeration: > LX_DXENUMADAPTERS2, LX_DXENUMADAPTERS3 > The IOCTLs return a d3dkmt handle for each enumerated adapter. > > - Implement ioctl to query adapter information: > LX_DXQUERYADAPTERINFO. > > - Implement ioctls to open and closet a dxgadapter object: > LX_DXOPENADAPTERFROMLUID, LX_DXCLOSEADAPTER > Note that dxgadapter is opened when LX_DXENUMADAPTERS2, LX_DXENUMADAPTERS3 > are called. > > - Implement ioctls for dxgdevice and dxgcontext creation/destruction: > LX_DXCREATEDEVICE, LX_DXCREATECONTEXT, LX_DXCREATECONTEXTVIRTUAL, > LX_DXDESTROYCONTEXT, LX_DXCREATEHWCONTEXT, LX_DXDESTROYDEVICE, > LX_DXDESTROYHWCONTEXT Hint, when you have to list all of the different things you are doing in a single commit, that is a good clue that you should be splitting up the commit into "one per thing". This commit has way too many things happening all at once, and is very difficult to review because of that. What would you do if you were confronted with a single patch like this and you had to review it? Make it trivial to review, please break this up into smaller pieces. thanks, greg k-h