lower_narrowing_casts() currently creates a new cast calling
hlsl_new_cast(). This cast may be redudant, but it is not folded, which
is making SM1 emit an unnecessary fixme in some shaders:
Aborting due to not yet implemented feature: SM1 "cast" expression.
Other passes that call hlsl_new_cast() are lower_int_division() and
lower_int_modulus(), so the new fold_redudant_casts() pass is called
after these as well.
This is the only thing left required for the HLSL compiler to properly compile the SONIC CD shaders.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/226
BORING
--
v3: vkd3d-shader/hlsl: Return an hlsl_ir_node pointer from hlsl_new_constant().
vkd3d-shader/hlsl: Pass a hlsl_constant_value pointer to hlsl_new_constant().
vkd3d-shader/hlsl: Pass hlsl_constant_value and hlsl_type pointers to fold_bit_or().
vkd3d-shader/hlsl: Pass hlsl_constant_value and hlsl_type pointers to fold_bit_and().
vkd3d-shader/hlsl: Pass hlsl_constant_value and hlsl_type pointers to fold_bit_xor().
vkd3d-shader/hlsl: Only read used coordinates in encode_texel_offset_as_aoffimmi().
vkd3d-shader/hlsl: Use the writemask to map the coords swizzle for load instructions.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/223
On my Nvidia GeForce GTX 1050 Ti `ddxddy.shader_test` doesn't pass because of considerably different numeric results.
As Giovanni pointed out, this is because my GPU uses the fine derivate and not the coarse derivate to implement ddx() and ddy().
For this reason, the result for ddx|ddy() is quantized so that the test passes if the GPU uses either coarse or fine derivates.
Additionally, tests for both ddx_coarse|ddy_coarse() and ddx_fine|ddy_fine() are added, that expect a more precise result.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/224
--
v6: vkd3d-shader/hlsl: Handle 'texkill' jump type.
vkd3d-shader/hlsl: Parse clip() function.
tests: Add some tests for clip().
vkd3d-shader: Make some helpers available from hlsl.c.
vkd3d-shader/hlsl: Add a parameter for jump nodes and use it for 'discard'.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/211
--
v5: vkd3d-shader/tpf: Add support for writing 'resinfo' instruction.
vkd3d-shader/tpf: Add support for writing 'sampleinfo' instruction.
vkd3d-shader/hlsl: Parse GetDimensions() method.
tests: Add some tests for GetDimensions().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/218
On Thu Jun 8 10:01:18 2023 +0000, Santino Mazza wrote:
> In this API the callbacks are the `Tx` functions from `ITextHost`, right?
Yes. See the existing tests in `dlls/riched20/tests/txtsrv.c`. We don't currently do much testing on which `ITextHost` members get called, but at least there's already an implementation there to get you started.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2941#note_35115
On Thu Jun 8 09:55:30 2023 +0000, Huw Davies wrote:
> > I couldn't debug it too much, because the crash happens only in the
> ITextHost implementation from a microsoft forms dll.
> Ah, so it may be related to which host callbacks get called. I think
> we're going to need some tests that look at that.
In this API the callbacks are the `Tx` functions from `ITextHost`, right?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2941#note_35114
> I couldn't debug it too much, because the crash happens only in the ITextHost implementation from a microsoft forms dll.
Ah, so it may be related to which host callbacks get called. I think we're going to need some tests that look at that.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2941#note_35113
On Thu Jun 8 09:52:58 2023 +0000, Huw Davies wrote:
> That'll mean that the host's `TxViewChange` method would get called -
> we'd need a test to see if that's the case. It still seems like we're
> hiding the problem. What crash did you see when using `ME_WrapMarkedParagraphs()`?
I couldn't debug it too much, because the crash happens only in the ITextHost implementation from a microsoft forms dll.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2941#note_35112