We used to expect a fixed number of DBI substreams (the expected number depended
on the DBI header version).
Recent MSVC generate a different number as we expected.
Implement a more flexible scheme where we allow any number of streams.
This lets these recent PDB files to be properly displayed by winedump, and
loaded/parsed by dbghelp.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/5112
Also removes the unused `cgsize_win_from_mac()`.
--
v2: winemac.drv: Remove dead cgsize_win_from_mac() function.
winemac.drv: Parametrize retina in cgpoint_win_from_mac().
winemac.drv: Parametrize retina in cgpoint_mac_from_win().
winemac.drv: Parametrize retina in cgsize_mac_from_win().
winemac.drv: Parametrize retina in cgrect_win_from_mac().
winemac.drv: Parametrize retina in cgrect_mac_from_win().
https://gitlab.winehq.org/wine/wine/-/merge_requests/5110
Co-authored-by: Giovanni Mascellani <gmascellani(a)codeweavers.com>
These may happen when storing to structured buffers, and we are not
handling them properly yet. The included test reaches unreacheable code
before this patch.
Storing to buffers is complicated since we need to split the index
chain in two paths:
- The path within the variable where the resource is.
- The subpath to the part of the resource element that is being stored
to.
For now, we will emit a fixme when the index chain in the lhs is not a
direct resource access.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/655
--
v7: vkd3d-shader/fx: Do not align structured data section.
vkd3d-shader/fx: Add initial support for writing buffers descriptions.
vkd3d-shader/fx: Do not align strings for fx_4/fx_5 profiles.
vkd3d-shader/fx: Use variable pointer in write_group().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/636
> ```
> Tests have already been implemented in 92044d5e; this commit loosens
> some of the todos (because now they're implemented!).
> ```
I get what you're saying here, but I think the use of "loosens" here is slightly odd; you're narrowing the scope of the todo's, not broadening it.
> ```diff
> + const char *fn_name = asin_mode
> + ? fn_name_asin
> + : fn_name_acos;
> ```
Continuations get double indentation, like template[] above this code, and the hlsl_sprintf_alloc() call below this code. This could of course also simply go on a single line.
> ```diff
> + static const char* atan2_name = "atan2";
> + static const char* atan_name = "atan";
> ```
We'll want
```c
static const char atan2_name[] = "atan2";
static const char atan_name[] = "atan";
```
here. That applies to "atan2_header_template" and "atan_header_template" as well.
> ```diff
> + if (!(buf = hlsl_get_string_buffer(ctx))) {
> + return false;
> + }
> +
> + if (atan2_mode) {
> + ok = vkd3d_string_buffer_printf(buf, atan2_header_template,
> + type->name, type->name, type->name, type->name);
> + } else {
> + ok = vkd3d_string_buffer_printf(buf, atan_header_template,
> + type->name, type->name, type->name);
> + }
> + if (ok < 0)
> + return false;
> +
> + ok = vkd3d_string_buffer_printf(buf, body_template, type->name);
> + if (ok < 0)
> + return false;
> +
> + func = hlsl_compile_internal_function(ctx,
> + atan2_mode ? atan2_name : atan_name, buf->buffer);
> ```
Couple of issues here:
- "{" and "}" would go on their own line, but could also simply be omitted here.
- Continuations get double indentation.
- You're leaking "buf" on the error paths.
- "ok" is an unusual name for the return code, it's more commonly called either "ret" or "rc".
- There's a trailing space on the line containing the hlsl_compile_internal_function() call.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/364#note_61887
--
v4: vkd3d-shader/dxil: Implement DX intrinsic RawBufferStore.
vkd3d-shader/dxil: Handle raw and structured buffers in sm6_parser_emit_dx_buffer_store().
vkd3d-shader/dxil: Implement DX intrinsic BufferStore.
tests/shader-runner: Add a test for a signed int structured buffer UAV.
tests/shader-runner: Add a test for a signed int typed buffer UAV.
tests/shader-runner: Support structured buffer UAVs.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/642
--
v3: vkd3d-shader/dxil: Implement DX intrinsic RawBufferStore.
vkd3d-shader/dxil: Handle raw and structured buffers in sm6_parser_emit_dx_buffer_store().
vkd3d-shader/dxil: Implement DX intrinsic BufferStore.
tests/shader-runner: Add a test for a signed int structured buffer UAV.
tests/shader-runner: Add a test for a signed int typed buffer UAV.
tests/shader-runner: Support structured buffer UAVs.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/642