Allows running more tests with nulldrv, including some D3D tests with vulkan renderer.
--
v3: win32u: Use VK_EXT_headless_surface for nulldrv surface.
win32u: Pass a vulkan_instance pointer to vulkan_surface_create.
winevulkan: Enable the VK_EXT_headless_surface extension.
winevulkan: Generate function pointers for required funcs.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7412
Current code requires entering a newline character in order to continue past DIR /P prompts. This change allows any key to be pressed instead.
Code to handle this was similar to existing WCMD_pause() so we leveraged that code for this purpose as well. Key to the fix was the removal of ENABLE_LINE_INPUT from the console flags, and ENABLE_PROCESSED_INPUT was added in order to preserve the ability to abort the operation via Ctrl-C.
--
v12: cmd: Allow any key to continue past DIR /P pauses.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7400
## Context
This is a problem discovered when running "Max: The Curse of Brotherhood" under proton. This game writes 4MB a piece into `wg_transform`, which contains about 4 seconds of compressed video. `wg_transform` calls `gst_pad_push` in `transform_ProcessOutput`, which takes \~300ms (i.e. 20 frames @ 60fps) to decode this buffer of video. So the end result is the game hitches every 4 seconds while playing cut scene videos.
Proton currently has a special case for this particular game, for which it breaks up the buffer into small chunks to avoid long blocks. This MR adopts that and applies it generally.
One concern raised by @redmcg is:
> The only issue I can think of is if there are any decoders which don't have a parser; then they might not know how to deal with an arbitrary 4096 byte buffer (the parser is generally responsible for taking arbitrary buffers and producing something the decoder can work with, for example: a full frame).
So this MR only enables this strategy when there is a parser element.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7288
I can see that you quoted MSDN page in the other MR, but it's not clear to me if it's relevant. It mentions some IIS APIs, not how HTTP headers look like. I guess adding a test to `test_http_connection()` that would send "-1" "Expires" header and querying `INTERNET_OPTION_CACHE_TIMESTAMPS` on the result would tell us how it works.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7323#note_95883
Allows running more tests with nulldrv, including some D3D tests with vulkan renderer.
--
v2: win32u: Use VK_EXT_headless_surface for nulldrv surface.
winevulkan: Enable VK_EXT_headless_surface extension.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7412
It's not clear to me what we should do in case of "-1". My understanding of HTTP spec is that it's invalid, which would suggest that failing to parse is the right thing to do. Does it break some application? If it does, maybe it expects ETag to be used and "Expires" header to be ignored?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7323#note_95881
I'm trying to change the static arrays of axis usages in `hid_device_add_physical()` into a `for` loop + a new function based on the current `hid_report_descriptor_append_usage()` but had some issues. I'll update the MR when I get it to work.
Seems like a better idea if the `PID_AXIS_MAX` was ever to change.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7422#note_95872