The latest scanner settings are now automatically saved in the HKEY_CURRENT_USER\Software\ScannersSettings\<Vendor>\<Product> path. This modification was tested and worked correctly.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8858
This MR adds a test that fails on Wine. It's not an easy fix because the Windows 16 bit OpenGL software renderer is pretty quirky and works differently from Linux OpenGL drivers, I'll make an issue in Bugzilla.
Wine output:
```
opengl.c:1863: Tests skipped: Skipping 16-bit rendering test (no 16 bit pixel format with the DRAW_TO_BITMAP flag was available)
```
Wine output without `todo_wine` and the skip:
```
opengl.c:1860: Test failed: Failed to get a 16-bit DRAW_TO_BITMAP pixel format
opengl.c:1869: Test failed: Failed to DescribePixelFormat (error: 2000)
opengl.c:1872: Test failed: Wrong amount of color bits (got 0, expected 16)
opengl.c:1888: Test failed: Failed to SetPixelFormat (error: 2000)
opengl.c:1892: Test failed: Failed to wglCreateContext (error: 2000)
0024:err:opengl:null_glClearColor unsupported
0024:err:opengl:null_glClear unsupported
0024:err:opengl:null_glFinish unsupported
0024:err:opengl:null_glMatrixMode unsupported
0024:err:opengl:null_glLoadIdentity unsupported
0024:err:opengl:null_glOrtho unsupported
0024:err:opengl:null_glMatrixMode unsupported
0024:err:opengl:null_glLoadIdentity unsupported
0024:err:opengl:null_glClearColor unsupported
0024:err:opengl:null_glClear unsupported
0024:err:opengl:null_glColor3f unsupported
0024:err:opengl:null_glLineWidth unsupported
0024:err:opengl:null_glBegin unsupported
0024:err:opengl:null_glVertex2i unsupported
0024:err:opengl:null_glVertex2i unsupported
0024:err:opengl:null_glEnd unsupported
0024:err:opengl:null_glFinish unsupported
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8888
In wined3d_swapchain_cleanup, before decrementing the reference counts of each of the back/front
buffers, we first set their swapchain to NULL, presumably to stop the current under-destruction
swapchain from being used through them. But there is an oversight.
When we call wined3d_texture_decref on the front_buffer, the back_buffers still have their
swapchains pointing to the swapchain being destroyed. In texture_resource_unload, we call
context_acquire(device, NULL, 0), note the NULL texture parameter here. When the texture parameter
is NULL, wined3d_context_gl_acquire (in turn called by context_acquire) will default to using the
first back buffer from the implicit swapchain of "device", which, as previously stated, has not had
their swapchain set to NULL yet. From here, we reach wined3d_context_gl_activate with a texture
whose swapchain is currently being destroyed. This swapchain is then assigned to "context_gl" here
before being freed, leaving a dangling pointer.
When this context_gl is acquired again later, we will try to access
context_gl->c.swapchain->win_handle, thus complete the use-after-free cycle.
This commit makes sure the swapchain pointer of ALL front and back buffers are set to NULL before
decrementing their reference counts.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=58325
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8406
My mistake, thanks for catching that. I made the mistake of running the tests with native quartz under Wine, but forgot to run the tests under actual Windows before submitting, which is especially problematic when dealing with windowing. I've submitted a fix as 8884.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/8848#note_114608