This serie adds a couple of test for CreateProcess around
std handles inheritance, depending on several options (cui/gui,
use (or no use) of STARTF_USESTDHANDLES, type of handles...).
This requires revisiting the existing tests to allow for more
flexibility in implementing the new tests (and potentially
others if needed).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4378
On Mon Nov 13 14:56:51 2023 +0000, Yuxuan Shui wrote:
> > not supported
> not sure what you mean by that? I can build it fine with mingw-w64-g++
> and it runs.
> > cancellation does not work
> this is not true. callback could still be called after MFCancelWorkItem
> returns success, the
> [documentation](https://learn.microsoft.com/en-us/windows/win32/api/mfapi/nf…
> says as much.
> and the thing is, more than this "hit race" case, our current rtworkq
> implementation triggers a assert in threadpool that says exactly what i
> predicted (callback is running when you try to close it). and that's
> exactly the race I am trying to avoid here.
> what more proof do you want?
i hope you understand the problem here. the problem is not the assert, so doesn't matter if the TP implementation handles this case.
the problem is if the `scheduled_item_cancelable_callback` is running when we reaches `queue_cancel_item`, we will double release the work item.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4243#note_52137
> not supported
not sure what you mean by that? I can build it fine with mingw-w64-g++ and it runs.
> cancellation does not work
this is not true. callback could still be called after MFCancelWorkItem returns success, the [documentation](https://learn.microsoft.com/en-us/windows/win32/api/mfapi/nf… says as much.
and the thing is, more than this "hit race" case, our current rtworkq implementation triggers a assert in threadpool that says exactly what i predicted (callback is running when you try to close it). and that's exactly the race I am trying to avoid here.
what more proof do you want?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4243#note_52135
It's possible that a state object pointer not in the topology node collection gets passed to
session_get_node_object(). Instead of returning the last node when the object is not found, we
should return a NULL so that the state of the last node is not changed by mistake.
--
v9: mf/tests: Test IMFMediaSession::Start().
mf: Support seeking while a session is running.
mf/tests: Add a create_test_topology() helper.
mf: Add a session_flush_nodes() helper.
mf: Make session_get_node_object() more robust.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3572
--
v8: vkd3d-shader/spirv: Avoid invalid bool-to-bool conversion in spirv_compiler_emit_movc().
vkd3d-shader/dxil: Implement the DXIL VSELECT instruction.
tests/shader-runner: Add tests for 64-bit casts.
vkd3d-shader/spirv: Return an error if an invalid handler is encountered.
tests/shader-runner: Add a test for float comparisons.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/459
Rémi Bernon (@rbernon) commented about dlls/dmsynth/synth.c:
> struct wave *wave;
> };
>
> +struct fixup
> +{
> + struct list entry;
> + int dst;
> + int src;
> + int flags;
> +
> + int fixup_dst;
> + float amount;
> +};
> +
Instead of a dynamic list, could we have just a simple structure like:
```c
struct gen_increments
{
float env_hold;
float env_decay;
float vol_hold;
float vol_decay;
};
```
Which we would pass around down to `add_mod_from_connection` which would set the needed adjustments (it's actually only needed there, `set_gen_from_connection` won't have to add increments), and then after the loops we would call `fluid_voice_gen_incr` for each of these?
Or do we need the generic version for more fixups that are not in this MR?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4375#note_52124
--
v5: dmime: Implement segment state repeat and looping.
dmime: Split segment_state_play_chunk helper.
dmsynth: Reset synthesizer defaults on MIDI_SYSTEM_RESET.
dmime: Send MIDI_SYSTEM_RESET message on performance reset.
dmime: Clear all pending messages in IDirectMusicPerformance_Stop.
dmime/tests: Test that IDirectMusicPerformance_Stop clears messages.
dmime/tests: Avoid discarding old notifications in test.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4358
Although they look fine, 20ab5954 (and ec219ce1 even more) cut some notes early in FF VIII intro.
Haven't really looked into the details but 0ff26da7 feels a bit complicated, I'm wondering if there's a better way to do this.
Regarding 2e226c26, is this what native does?
Fwiw I'm thinking that if we want to have a much more robust SF2 / DLS2 mapping, it may be a good thing to have more dmsynth tests. I already added one that does basic sample rendering without checking the output, but maybe we should extend it to compare the rendered samples with various input.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4375#note_52119