Some high-level questions: * What about matrix and stateblock handles? Should we just move the whole table in one go? * Should the table go in the ddraw object, or should it be global? * Assuming that rendering to a given device is supposed to go to that device's RT specified at creation time, calling wined3d_device_context_set_rendertarget_views() from d3d_device_init() won't be enough to achieve that anymore. Presumably we need to do it on every draw call now. * In fact, more generally, shouldn't state be specific to each device? That'll need more thought. We could probably use a per-device primary stateblock? Matteo, Stefan, Henri, since you have a lot more background in this area, are there other potential concerns with having multiple devices that I might not be thinking of? -- https://gitlab.winehq.org/wine/wine/-/merge_requests/5329#note_65241