On Tue May 9 13:57:15 2023 +0000, Ethan Lee wrote:
> I could see this getting hit again if fold_exprs got used elsewhere - if
> we can't fold abs(INT_MIN), would it make sense to leave the expression
> untouched and let the runtime deal with it instead? I can add a quick
> ```
> /* abs(INT_MIN) is undefined, leave this expression alone */
> if (src->value.u[k].i == INT_MIN)
> return false;
> ```
> if so.
That's fine for me.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/203#note_32287
On Tue May 9 10:35:56 2023 +0000, Giovanni Mascellani wrote:
> This is undefined behavior on `INT_MIN`.
> Actually, this case is somewhat interesting, because `lower_int_abs()`
> runs before constant expression folding, and should get rid of all `int`
> absolute values. So in principle we could stick `vkd3d_unreachable()`
> here. However `lower_int_abs()` does not run when doing constant folding
> from `evaluate_static_expression_as_uint()`, so this is still reachable.
> I'm not sure of what the others think, but I think I would be in favor
> to stipulating that this is unreachable and add other passes to `evaluate_static_expression_as_uint()`.
I could see this getting hit again if fold_exprs got used elsewhere - if we can't fold abs(INT_MIN), would it make sense to leave the expression untouched and let the runtime deal with it instead? I can add a quick
```
/* abs(INT_MIN) is undefined, leave this expression alone */
if (src->value.u[k].i == INT_MIN)
return false;
```
if so.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/203#note_32279
Introduces an `idx_count` field to `struct vkd3d_shader_register`. Another patch set is needed for further validations and to use this field where applicable.
--
v8: vkd3d-shader/tpf: Validate input and output index ranges for default control point phases.
vkd3d-shader/tpf: Remove an unnecessary carriage return from a parser error message.
vkd3d-shader/tpf: Validate index range declarations.
vkd3d-shader/tpf: Validate input/output registers.
vkd3d-shader/tpf: Validate signature element masks.
vkd3d-shader/tpf: Validate signature element register indices.
vkd3d-shader/tpf: Validate input/output register index counts.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/198
Doing first instead of https://gitlab.winehq.org/wine/wine/-/merge_requests/2637, as it should be more straightforward.
--
v3: winemac: Use the default IME implementation for NotifyIME.
winex11: Move NotifyIME to the default IME implementation.
win32u: Introduce new NtUserNotifyIMEStatus syscall.
winex11: Simplify NotifyIME with NI_COMPOSITIONSTR / CPS_COMPLETE.
winex11: Clear the composition string when input context is closed.
winex11: Use a helper to change internal composition status.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2769
--
v4: wineoss: Use mmdevapi's AudioStreamVolume.
winecoreaudio: Use mmdevapi's AudioStreamVolume.
winealsa: Use mmdevapi's AudioStreamVolume.
winepulse: Move AudioStreamVolume into mmdevapi.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2764
Doing first instead of https://gitlab.winehq.org/wine/wine/-/merge_requests/2637, as it should be more straightforward.
--
v2: winemac: Use the default IME implementation for NotifyIME.
winex11: Move NotifyIME to the default IME implementation.
win32u: Introduce new NtUserNotifyIMEStatus syscall.
winex11: Simplify NotifyIME with NI_COMPOSITIONSTR / CPS_COMPLETE.
winex11: Clear the composition string when input context is closed.
winex11: Use a helper to change internal composition status.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2769