On Fri Jul 28 02:22:22 2023 +0000, **** wrote:
> Marvin replied on the mailing list:
> ```
> Hi,
> It looks like your patch introduced the new failures shown below.
> Please investigate and fix them before resubmitting your patch.
> If they are not new, fixing them anyway would help a lot. Otherwise
> please ask for the known failures list to be updated.
> The tests also ran into some preexisting test failures. If you know how
> to fix them that would be helpful. See the TestBot job for the details:
> The full results can be found at:
> https://testbot.winehq.org/JobDetails.pl?Key=135341
> Your paranoid android.
> === debian11 (32 bit zh:CN report) ===
> Report validation errors:
> d3d11:d3d11 crashed (c0000005)
> ```
This looks like https://bugs.winehq.org/show_bug.cgi?id=53217 so I don't think it's new
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3431#note_40653
This serie:
- adds a couple of tests to CreateProcess to cover ctrl-c blocking inheritance flag
and process group creation
- populates RTL_USER_PROCESS_PARAMETERS.ProcessGroupId
- separates new process group creation from ctrl-c inheritance flag
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3442
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