Support manually packing constant buffer elements through the `packoffset(·)` syntax.
Support not included yet for simultaneously having semantics, `register(·)`, and `packoffset(·)`, for abnormalities such as:
```hlsl
Texture2D tex;
cbuffer buff
{
float4 a : packoffset(c0);
sampler sam : packoffset(c0) : register(s1) : SEMANTIC;
}
float4 main() : sv_target
{
return tex.Sample(sam, float2(0, 0)) + a;
}
```
but this motivated the addition of the `hlsl_ir_var.offset_reservation` field instead of reusing `hlsl_ir_var.reg_reservation`.
--
v3: vkd3d-shader/hlsl: Consider register() as manual packing for resource fields.
tests: Test packoffset() with resources inside cbuffers.
vkd3d-shader/hlsl: Ignore packoffset() contents for SM1.
vkd3d-shader/hlsl: Don't allow manual and automatic cbuffer offset packing.
vkd3d-shader/hlsl: Detect overlaps in cbuffer offsets.
vkd3d-shader/hlsl: Support packoffset().
vkd3d-shader/hlsl: Parse packoffset().
tests: Test packoffset().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/106
Needed by the VR games Forewarned and Überlaüfer.
I had to put the parameters of the header functions on newlines because they're too long. Did the same for the other headers for consistency. windows.security.cryptography.idl uses a similar style.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2292
> Thinking of doing this x11 specific, I think that maybe we don't even need a special boolean flag if your MR !2217 gets in? Once we have a separate tracking of internal pixel format in WGL_WINE_pixel_format_passthrough we could just always fail setting internal pixel format once external is set. The extension itself will still work as if an app wants to use GL together with d3d it will be able to set GL pixel format (which will result in wined3d creating a backup context).
I think that'd work, yeah.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2299#note_26227
I looked a bit into winemac driver and some GL on Mac docs and I suppose that such an issue should not be happening on Mac. If I read that right pixel format is only bound to GL context and the pixel format set by Wine only influences the contexts created with the window. I don't have any Mac setup however to check that for sure. If anyone could check if that referenced games (Richman: Classic in opengl mode or Secondhand Lands or SPORE from Bug 51848 work now on Mac without issues that would be a good confirmation that set pixel format works fine there and doesn't impose issues like on winex11.
Thinking of doing this x11 specific, I think that maybe we don't even need a special boolean flag if your MR !2217 gets in? Once we have a separate tracking of internal pixel format in WGL_WINE_pixel_format_passthrough we could just always fail setting internal pixel format once external is set. The extension itself will still work as if an app wants to use GL together with d3d it will be able to set GL pixel format (which will result in wined3d creating a backup context).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2299#note_26224
On Wed Mar 1 12:24:02 2023 +0000, Alexandros Frantzis wrote:
> > The last patch looks worrying in terms of forward-compatibility.
> Looking at your wayland branch, you use a few unstable files. What
> happens if/when they get promoted to stable? Will those files be moved
> in wayland-protocols causing your branch to fail to build?
> TL;DR: Not a problem.
> When a protocol is moved to stable, a new copy is placed in that
> directory (details are different depending on whether this copy is done
> from 'staging' or the legacy 'unstable'), while the old xml file(s)
> remain in place for backward compatibility. If the new copy requires a
> protocol name change (e.g., from unstable->stable, but not
> staging->stable) compositors tend to have a long deprecation period
> during which both old and new names are supported. As an example, it
> took compositors several years to drop support for unstable/xdg-shell
> after the introduction of stable/xdg-shell.
> FWIW, the Wayland community is *very* conservative concerning promotions
> to stable, so a lot of functionality is still in unstable/staging.
> Compare: 3 stable protocols vs 27 staging/unstable, some of them having
> been there for many years.
> More information about these topics can be found at https://gitlab.freedesktop.org/wayland/wayland-protocols/
> > Also, it would be better to have commit adding build system support
> for protocol files together with at least a simple use of it in the same MR.
> Ack. Moved to the next MR.
Thanks for explanation, staging backward compatibility guarantees should do the trick.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2275#note_26223
Signed-off-by: Bernhard Kölbl <besentv(a)gmail.com>
--
v22: windows.media.speech: Implement Vosk create and release functions in the unixlib.
windows.media.speech/tests: Allow the SpeechRecognizer creation to fail in Wine.
windows.media.speech/tests: Get rid of duplicated hresult.
windows.media.speech: Add unixlib stub.
windows.media.speech: Add Vosk checks to autoconf.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2091
Signed-off-by: Bernhard Kölbl <besentv(a)gmail.com>
--
v20: windows.media.speech: Implement Vosk create and release functions in the unixlib.
windows.media.speech/tests: Allow the SpeechRecognizer creation to fail in Wine.
windows.media.speech/tests: Get rid of duplicated hresult.
windows.media.speech: Add unixlib stub.
TEMP: Reconf.
windows.media.speech: Add Vosk checks to autoconf.
makedep: Better differentiate between compiling and linking commands.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2091
Signed-off-by: Bernhard Kölbl <besentv(a)gmail.com>
--
v19: windows.media.speech: Implement Vosk create and release functions in the unixlib.
windows.media.speech/tests: Allow the SpeechRecognizer creation to fail in Wine.
windows.media.speech/tests: Get rid of duplicated hresult.
windows.media.speech: Add unixlib stub.
windows.media.speech: Add Vosk checks to autoconf.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2091
Jacek Caban (@jacek) commented about dlls/winewayland.drv/wayland.c:
> +
> +/**********************************************************************
> + * wayland_init
> + *
> + * Initialise a wayland instance.
> + */
> +BOOL wayland_init(struct wayland *wayland)
> +{
> + struct wl_display *wl_display_wrapper;
> +
> + TRACE("wayland=%p wl_display=%p\n", wayland, process_wl_display);
> +
> + wl_list_init(&wayland->thread_link);
> +
> + wayland->process_id = GetCurrentProcessId();
> + wayland->thread_id = GetCurrentThreadId();
Those are redundant for this commit. It's trivial to add when needed and introducing it later would make things much easier to review, because reviewer would need to jump between MR and your branch much less. I would suggest to leave thread_link, thread_id, process_id and initialized out of this MR. (Also, if process_id is always equal to `GetCurrentProcessId()`, I don't think there is much point in storing it).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2275#note_26191
Jacek Caban (@jacek) commented about dlls/winewayland.drv/wayland.c:
> +{
> + struct wl_display *wl_display_wrapper;
> +
> + TRACE("wayland=%p wl_display=%p\n", wayland, process_wl_display);
> +
> + wl_list_init(&wayland->thread_link);
> +
> + wayland->process_id = GetCurrentProcessId();
> + wayland->thread_id = GetCurrentThreadId();
> + wayland->wl_display = process_wl_display;
> +
> + if (!wayland->wl_display)
> + {
> + ERR("Failed to connect to wayland compositor\n");
> + return FALSE;
> + }
I think that this error condition can never happen, we fail to load the driver if process_wl_display is NULL. Also, if wl_display is always equal to process_wl_display, why do we need to store it in wayland struct?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2275#note_26192
Jacek Caban (@jacek) commented about configure.ac:
> [enable_winex11_drv])
> fi
>
> +WINE_NOTICE_WITH(wayland, [false],
> + [Wayland ${notice_platform}development files not found, the Wayland driver won't be supported.],
> + [enable_winewayland_drv])
> +
This chunk makes little sense on its own, it could just be added in a commit that introduces wayland-client checks. This commit doesn't really need to modify configure more than what tools/make_makefiles does.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2275#note_26190
The goal is to eventually move all interfaces from each driver's `mmdevdrv.c` into `mmdevapi`.
--
v5: wine{alsa,coreaudio,oss,pulse}: Move test_connect handling into mmdevapi.
mmdevapi: Use UTF-16 for client name in "test_connect_params" and "create_stream_params" structs.
winepulse: Move process_attach and process_detach handling into mmdevapi.
mmdevapi: Query MemoryWineUnixFuncs virtual memory and store the resulting handle.
wine{alsa,coreaudio,oss,pulse}: Return STATUS_SUCCESS for unused unixlib functions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1543