On Thu May 28 05:18:16 2026 +0000, Henri Verbeet wrote:
```diff @@ -957,7 +957,7 @@ static HRESULT WINAPI
d3d8_device_Reset(IDirect3DDevice8 *iface,
if (!wined3d_swapchain_desc_from_d3d8(&swapchain_desc, device->d3d_parent->wined3d_outputs[output_idx], present_parameters)) return D3DERR_INVALIDCALL; - swapchain_desc.flags |= WINED3D_SWAPCHAIN_IMPLICIT; + swapchain_desc.flags |= WINED3D_SWAPCHAIN_IMPLICIT | WINED3D_SWAPCHAIN_ALLOW_MS_LOCKABLE_BACKBUFFER;
wined3d_mutex_lock();
@@ -3758,7 +3758,7 @@ HRESULT device_init(struct d3d8_device *device,
struct d3d8 *parent, struct wine
free(device->handle_table.entries); return D3DERR_INVALIDCALL; } - swapchain_desc.flags |= WINED3D_SWAPCHAIN_IMPLICIT; + swapchain_desc.flags |= WINED3D_SWAPCHAIN_IMPLICIT | WINED3D_SWAPCHAIN_ALLOW_MS_LOCKABLE_BACKBUFFER;
if (FAILED(hr = d3d8_swapchain_create(device, &swapchain_desc,
wined3dswapinterval_from_d3d(parameters->FullScreen_PresentationInterval), &d3d_swapchain)))
```
Should this apply to d3d8_device_CreateAdditionalSwapChain() as well? Or put a different way, would it make sense to set this flag in wined3d_swapchain_desc_from_d3d8()? Yes, I added `CreateAdditionalSwapChain()` tests and the suggested change.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10874#note_141484