Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
> FIXME("Unhandled dxil instruction %u.\n", record->code);
> return VKD3D_ERROR_INVALID_SHADER;
> }
> + /* Allocation failure. */
That's not necessarily the case, is it? Any call to `vkd3d_shader_parser_error()`, such as in `dxil_record_validate_operand_min_count()`, could trigger this failure.
More in general, I think we there is some confusion between whether to use the parser `failed` bit vs using the return value. We could use the same convention as the HLSL compiler: `failed` is set as soon as an error is found, and it should always set via `vkd3d_shader_parser_error()` so that a diagnostic is always available; an error return value should only be used when an error was found and parsing must halt immediately.
In this scheme you should never look at `failed` to decide what to return, because you don't know if `failed` was set because of an error that still allows parsing or not. You have to genuinely propagate the return code at each level.
It is useful to have memory allocation functions that also set the `failed` bit, like the HLSL compiler.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/283#note_40646
Giovanni Mascellani (@giomasce) commented about libs/vkd3d-shader/dxil.c:
> ++block_idx;
> code_block = (block_idx < function->block_count) ? function->blocks[block_idx] : NULL;
This was already here before, but I just realized that setting `code_block` to `NULL` might give a few problems if there are some other instructions (which shouldn't be there, but the shader might be untrusted input). Specifically, various lines in this loop assume that `code_block` is valid, and if it's not an `assert()` could be triggered.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/283#note_40645
Let The Good Life able to play its intro video, the game creates a source reader from a `http://localhost:6000/<random-hash>` URL. This should also probably work with other games playing streams over http(s).
This is a very basic implementation, using urlmon, and it will download the entire stream to a local temporary file before playback. An more optimized implementation would probably use WinHttp and range requests to partially download the requested stream segments, but this can be implemented in a future change.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3439
This get us pass the "Update your browser" blocker in adobe's sign-in page. The page itself doesn't make use of `window.MutationObserver`.
However the sign-in page is still broken.
--
v23: mshtml: add stubs for MutationObserver methods
mshtml: implement window.MutationObserver with MutationObserver stub
https://gitlab.winehq.org/wine/wine/-/merge_requests/3391
@huw I had a look at the output of the failure from MR #3423, but I can't see why it is trying to use `-lpcsclite`. Rhe configure check for it fails, but the one for PCSC.framework succeeds, so it should be using that. I'll try to look further.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3389#note_40620