Commit graph

170885 commits

Author SHA1 Message Date
Esme Povirk
96a65cbfd1 gdiplus: Bracket HDC use in draw_poly. 2024-05-12 16:33:14 +02:00
Yuxuan Shui
cf24381899 rtworkq: Release cancelled work items.
Usually the threadpool holds a reference to the `work_item`, which is released when the `work_item`'s
callback is invoked. On the other hand, `queue_cancel_item` closes the threadpool object without
releasing the `work_item`. So if the callbacks don't get a chance to run - which is not guaranteed -
the `work_item` will be leaked.

The fix is not as simple as adding a `IUnknown_Release` to `queue_cancel_item`, because the
`work_item`'s callback can still be called after CloseThreadpoolTimer/Wait has returned. In fact its
callback might currently be running. In which case the callback will access freed memory if
`queue_cancel_item` frees the `work_item`.

We have to stop any further callbacks to be queued, wait for any currently running callbacks to
finish, then finally we can release the `work_item` if it hasn't already been freed during the wait.
2024-05-12 16:32:53 +02:00
Yuxuan Shui
a40c1bc01e mfplat/tests: Validate MFCancelWorkItem releases the callback. 2024-05-12 16:32:53 +02:00
Yuxuan Shui
aa963129d9 rtworkq: Avoid use-after-free.
queue_release_pending_item releases the work_item reference but later
accesses `item->queue`, which is a potential use-after-free.
2024-05-12 16:32:49 +02:00
Rémi Bernon
bf64ae2627 mfplat: Implement MFCreateVideoMediaType. 2024-05-12 16:32:25 +02:00
Rémi Bernon
9fac589765 mfplat: Implement MFInitMediaTypeFromMPEG2VideoInfo. 2024-05-12 16:32:24 +02:00
Rémi Bernon
8c77a1a099 mfplat: Implement MFInitMediaTypeFromMPEG1VideoInfo. 2024-05-12 16:32:23 +02:00
Rémi Bernon
ec0455b97a mfplat: Implement FORMAT_MPEG2Video for MFInitAMMediaTypeFromMFMediaType. 2024-05-12 16:32:23 +02:00
Rémi Bernon
dce8d8b552 mfplat: Implement FORMAT_MPEGVideo for MFInitAMMediaTypeFromMFMediaType. 2024-05-12 16:32:23 +02:00
Rémi Bernon
0b5c04c517 mfplat: Set AM_MEDIA_TYPE bTemporalCompression and bFixedSizeSamples. 2024-05-12 16:32:23 +02:00
Rémi Bernon
772ad6e8a9 mfplat: Factor AM_MEDIA_TYPE video format allocation. 2024-05-12 16:32:23 +02:00
Rémi Bernon
00758a2e20 mfplat: Use media_type_get_uint32 in more places. 2024-05-12 16:32:23 +02:00
Rémi Bernon
704c510045 mfplat: Introduce a new init_video_info_header helper. 2024-05-12 16:32:23 +02:00
Rémi Bernon
3404de3075 mfplat: Use IMFMediaType_GetBlobSize instead of IMFMediaType_GetBlob. 2024-05-12 16:32:23 +02:00
Rémi Bernon
551d047ae4 mfplat: Fix MFCreateMFVideoFormatFromMFMediaType videoInfo.VideoFlags masks. 2024-05-12 16:32:23 +02:00
Paul Gofman
0884b503c9 win32u: Update last message time in NtUserGetRawInputBuffer(). 2024-05-12 16:31:50 +02:00
Brendan McGrath
f6791f59c3 winex11.drv: Increment mode_idx in {xrandr10,xf86vm}_get_modes.
This fixes a regression introduced in f74900ad1a.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=56655
2024-05-12 16:27:10 +02:00
Daniel Lehman
243a014123 msvcrt/tests: Add tests for _wcsicmp_l. 2024-05-12 16:26:51 +02:00
Nikolay Sivov
a1dadf3683 d2d1/effect: Fix GetImageLocalBounds() prototype.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-12 16:26:17 +02:00
Nikolay Sivov
3e3e347ed0 d2d1/tests: Add a test for effect output image interface query.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2024-05-12 16:26:17 +02:00
Alexandros Frantzis
51b13e776e win32u: Enable dibdrv wglDescribePixelFormat through p_get_pixel_formats. 2024-05-12 16:26:09 +02:00
Elizabeth Figura
ba1ddc62ef wined3d: Remove the no longer used Y correction variable. 2024-05-12 16:25:55 +02:00
Elizabeth Figura
d1ce00e429 wined3d: Remove the no longer used render_offscreen field from struct ds_compile_args. 2024-05-12 16:25:55 +02:00
Elizabeth Figura
ba2f78922f wined3d: Remove no longer used support for drawing to an onscreen render target.
Now that we require ORM_FBO, wined3d backbuffers are always offscreen (and we
never draw directly to the frontbuffer, which is the only truly onscreen
surface).

We could reintroduce support for drawing directly to the backbuffer, and this
would presumably improve performance by avoiding a blit from the wined3d
backbuffer to the real GL backbuffer.

However, this is not always possible or performant due to mismatching
dimensions, or the need to use a depth buffer which is also used with offscreen
RTVs, and for d3d1-9 it may not be possible at all due to issues related to
preserving invariance between flipped and non-flipped geometry.

It *may* be possible to identify situations where we can render directly to the
backbuffer for d3d10+, but at that point we can rely on the Vulkan backend to
work, and given other unfixable performance problems with the GL backend (most
notably the inability to properly stream index buffer data) it does not really
make much sense to go out of our way to perform such a minor optimization there.
2024-05-12 16:25:54 +02:00
Elizabeth Figura
4ad68d4e04 wined3d: Use wined3d_resource_is_offscreen() directly in ffp_blitter_clear_rendertargets().
This is the only user of context->render_offscreen that is not related to draw
state.

The use here is synonymous with using wined3d_resource_is_offscreen() on the
actual colour target.
2024-05-12 16:25:51 +02:00
Elizabeth Figura
d2f13e5d8c wined3d: Remove the offscreen_rendering_mode setting. 2024-05-12 16:25:51 +02:00
Paul Gofman
61fdd99b0f bcrypt: Support RSA/PKCS1 signatures with unspecified hash algorithm. 2024-05-12 16:24:16 +02:00
Brendan Shanks
e7118b7502 winemac.drv: Fix warning in macdrv_get_pixel_formats. 2024-05-12 16:24:05 +02:00
Eric Pouech
ae9bdbda3b cmd: Use CRT's popen instead of rewriting it.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-08 22:39:44 +02:00
Eric Pouech
93354bbd88 cmd: Introduce xrealloc helper.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-08 22:39:44 +02:00
Eric Pouech
76237079d1 cmd: No longer keep track of last element in command list.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-08 22:39:44 +02:00
Eric Pouech
371eda6c4c cmd: Consistenly use the same variable to identify current command.
Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2024-05-08 22:39:44 +02:00
Dmitry Timoshkov
fdc2caf678 user32/tests: Offset child CS_PARENTDC window from parent to make more bugs visible.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
2024-05-08 22:39:44 +02:00
Elizabeth Figura
06cb24bb65 maintainers: Change the full form of my name.
And update to a more reliable email address.
2024-05-08 22:39:44 +02:00
Daniel Lehman
218c4ac115 msvcrt/tests: Add result for Turkish_Türkiye.1254. 2024-05-08 20:41:15 +02:00
Ziqing Hui
08478473b7 winegstreamer/video_decoder: Make output_plane_align specific to h264.
If we set output align to wmv decoder, it will fail at copy_video_buffer().
The output size will larger than the sample we provided due to alignment.
2024-05-08 20:41:15 +02:00
Rémi Bernon
067d4f0472 winegstreamer: Introduce a new check_video_transform_support helper. 2024-05-08 20:41:15 +02:00
Rémi Bernon
cc82780c22 winegstreamer: Introduce a new check_audio_transform_support helper. 2024-05-08 20:41:15 +02:00
Rémi Bernon
c1158337ab winegstreamer: Introduce a new wg_transform_create_mf helper. 2024-05-08 20:41:15 +02:00
Rémi Bernon
11c47925f0 mfreadwrite/reader: Pass the device manager to the stream transforms. 2024-05-08 20:41:15 +02:00
Rémi Bernon
cf3134a841 winegstreamer/video_processor: Implement D3D awareness. 2024-05-08 20:41:15 +02:00
Rémi Bernon
c4fb3900bc mf/tests: Test video processor D3D11 awareness. 2024-05-08 20:41:15 +02:00
Rémi Bernon
54ff5bdf85 mfreadwrite/tests: Add some source reader D3D11 awareness tests. 2024-05-08 20:41:15 +02:00
Billy Laws
a2b4924db5 ntdll: Don't restore PC from LR after unwinding through frame switches.
Fixes unwinds from within a consolidation callback on ARM64EC, as the
context frame could be x64 with UNWOUND_TO_CALL set, in which case LR
contains garbage.

See: 71abc26cf8/src/coreclr/unwinder/arm64/unwinder.cpp (L2334)
2024-05-08 20:41:15 +02:00
Esme Povirk
646729f3f2 gdiplus: Bracket HDC use in draw_cap. 2024-05-08 20:41:15 +02:00
Esme Povirk
a4ed61f39a gdiplus: Bracket hdc use in brush_fill_path. 2024-05-08 20:41:15 +02:00
Esme Povirk
ed3cd9b35f gdiplus: Bracket HDC use in alpha_blend_pixels_hrgn. 2024-05-08 20:41:15 +02:00
Esme Povirk
af6aaf779d gdiplus: Bracket HDC use in gdi_alpha_blend. 2024-05-08 20:41:15 +02:00
Esme Povirk
e29623bbeb gdiplus: Add a function to bracket HDC use. 2024-05-08 20:41:15 +02:00
Alexandre Julliard
6ab9a50d48 ntdll: Generate dummy SMBIOS data on non-supported platforms. 2024-05-08 20:41:15 +02:00