@stefan It is possible the purpose of this MR morphed a bit along the way. IIRC, there was a thought that maybe Render was doing its own clear. It is not, so code using the API would be expected to explicitly call a Clear before Render. At this point, I guess this is essentially a way to retain that knowledge as a test.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/477#note_39301
Sufficient for compiling a no-op pixel shader.
This should probably be rebased on top of !263 because it introduces vkd3d_spirv_get_type_id_for_data_type(), which 263 renders unnecessary.
!263 is not essential, but I think using two different type systems in the backend is not ideal.
--
v2: vkd3d-shader/dxil: Emit undefined constants.
vkd3d-shader/spirv: Introduce an undefined register type.
vkd3d-shader/dxbc: Allow DXBC containers to have a zero checksum.
vkd3d-shader/dxil: Emit the shader instructions.
vkd3d-shader/spirv: Do not normalise Shader Model 6 shaders.
vkd3d-shader/dxil: Return an error from sm6_parser_globals_init() on invalid operand count.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/278
This MR allows existing some existing Windows TTS Engines, such as Amazon Polly, to be used in Far Cry 6, and possibly in other games/applications.
--
v3: sapi: Implement ISpVoice::WaitUntilDone.
sapi: Implement ISpTTSEngineSite::GetActions/Rate/Volume.
sapi: Implement ISpTTSEngineSite::Write.
sapi: Finish implementing ISpVoice::Speak.
sapi: Partially implement ISpVoice::Speak.
include: Fix ISpTTSEngineSite::GetActions return type.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3328
Add a '__program_vars' section to the preloader, to make it a correct macOS 10.7 binary.
This fixes Wine crashing on macOS Sonoma, and GStreamer crashing when initialized by Wine (on macOS Monterey and later).
However this causes dyld to initialize libSystem before the preloader runs, resulting
in system allocations throughout the ranges that need to be reserved.
To prevent this, use a zerofill section to reserve the entire low 8GB of address space
for use by Wine.
This also has the benefit of reserving as much address space as possible for Wow64.
Additionally, this MR is a step towards not using the preloader entirely on 64-bit macOS (it relies on very unsupported APIs and methods).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3349
On Mon Jul 17 20:07:36 2023 +0000, Esme Povirk wrote:
> If the IWICPalette has only 4 colors in it, it can be assumed to only
> return 4 colors. If for some reason we need a test for palettes writing
> out of bounds (which I don't think we do), that should go in palette.c.
Since 256 was hard-coded in `GifDecoder_CopyPalette` for the no-GCT-present case (256 was correct for the test case), I had thought it might be worth-while to expand the testing. However, I suppose the `IWICPalette_GetColorCount` check should be sufficient.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3344#note_39204
Esme Povirk (@madewokherd) commented about dlls/windowscodecs/tests/gifformat.c:
> ok(color[1] == 0x00040506, "expected 0x00040506, got %#x\n", color[1]);
> ok(color[2] == 0xff070809, "expected 0xff070809, got %#x\n", color[2]);
> ok(color[3] == 0xff0a0b0c, "expected 0xff0a0b0c, got %#x\n", color[3]);
> + for (i = 4; i < 256; i++)
> + ok(color[i] == 0xdeadbeef, "expected 0xdeadbeef, got %#x\n", color[i]);
If the IWICPalette has only 4 colors in it, it can be assumed to only return 4 colors. If for some reason we need a test for palettes writing out of bounds (which I don't think we do), that should go in palette.c.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3344#note_39201
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54748
--
v4: gdiplus: Fix GdipGetAllPropertyItems return value when no properties exist.
gdiplus: Fix GdipGetPropertySize return value when no properties exist.
gdiplus/tests: Pare down image property tests that are not run for Wine.
gdiplus/tests: Use test context for test ran in a loop.
gdiplus/tests: Add GIF to image properties tests.
gdiplus/tests: Use consistent no-alternate value for image properties.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3302
Some tests in gdiplus output hex-formatted data chunks, but it is very hard to read
EXAMPLE BEFORE FIX:
```
image.c:4831: Test marked todo: 16: data should match
image.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 80i
mage.c:4837: 80image.c:4837: 80image.c:4837: 80image.c:4837: 80image.c:4837: 80image.c:4837: 40image.c:4837: 40im
age.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4837: 40ima
ge.c:4837: 40image.c:4837: 40image.c:4837: 40image.c:4838:
```
EXAMPLE AFTER FIX:
```
image.c:4802: Test marked todo: 16: data should match
image.c:4804: 40 40 40 40 40 40 80 80 80 80 80 80 40 40 40 40 40 40 40 40 40 40 40 40
```
--
v3: gdiplus/tests: Fix mangled test output when dumping data in hex format.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3313
--
v2: jscript: Properly set JS_E_WRONG_THIS as a TypeError.
mshtml/tests: Add tests for WeakMap.
jscript: Implement WeakMap.has().
jscript: Implement WeakMap.clear().
jscript: Implement WeakMap.delete().
jscript: Implement WeakMap.get().
jscript: Implement WeakMap.set().
jscript: Implement WeakMap instance stub and constructor.
jscript: Move the GC traversal for unmarking alive objects into a helper
jscript: Convert unlink_props to a helper that unlinks the entire object.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3300
--
v3: Release 8.0.2.
localspl: Don't pass original document name to cupsStartDocument.
wininet/tests: Update expected WineHQ certificate.
winhttp/tests: Fix a test failure.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3168
Most of the interesting part is the API (first patch); the rest is
implementation. The basic idea is that we have predefined fixed numbers for the
float, integer, and boolean constant arrays, and treat each of the three like a
constant buffer.
Implementation-wise, we lower sm1-style constant registers to sm4-style constant
buffers and immediate constants, which are capable of expressing a strict
superset of the same functionality.
Note that use of immediate constants is *not* the way that wined3d currently
handles DEF instructions, but rather those are uploaded via uniforms. Is there a
reason for this?
Relative addressing is not yet implemented. In theory it should be simple enough
to either translate it directly, for external constants, or use sm4-style
immediate constant buffers, for internal constants. There may be a snag if an
application depends on relative addressing to cover a range of both internal and
external constants; this surely would require manual assembly or an application
bug, but we could implement it by copying to a temporary array using a private
TEMP-like register type.
--
Because API is easiest to review when there's a concrete user, I have functional
patches hooking this up to wined3d, in the following branches:
https://gitlab.winehq.org/zfigura/vkd3d/-/commits/himavant5https://gitlab.winehq.org/zfigura/wine/-/commits/himavant_cb
The vkd3d branch contains some extra commits necessary to compile basic shaders;
I intend to submit these as soon as possible after the important API parts have
been reviewed. I tested this patch series by building a mingw vkd3d tree with
that branch, and running the shader runner through Wine, with a test that uses
both internal and external constants:
make tests/shader_runner.exe && WINE_D3D_CONFIG=renderer=vulkan wine tests/shader_runner.exe ../vkd3d/tests/hlsl/writemask-assignop-0.shader_test
I actually originally wrote the API without a user in mind, and later hooked up
the implementation in Wine, and was surprised to find how straightforward it
ended up being, so I think that speaks quite strongly in favour of this API.
Granted, I had already written "wined3d: Store push constants in wined3d_buffers
in struct wined3d_state." by that point, but that was something I anticipated
needing for Wine anyway, without thinking of vkd3d.
--
I actually originally did the implementation all in spirv.c, mostly because this
was before we had infrastructure in place to do passes on the middle IR. I much
prefer this version, it's quite centralized in one place and I think ends up
being simpler than the spirv.c version anyway, but I can retrieve the spirv.c
version if anyone wants to see it.
That said, we may not want to lower to VKD3DSPR_CONSTBUFFER for GLSL without
UBOs (but then again, we could also just emit VKD3DSPR_CONSTBUFFER registers as
plain GLSL arrays).
The actual declaration of flat constants is kept in spirv. I suppose the
alternative here is to instead declare buffers from the reflection information
and simply ignore dcl_constantbuffer. I submitted the patch as-is since it
seemed simple enough and I didn't want to block this work further on rewriting
that part, but we may want to rewrite it in the future regardless.
```
After the torchlight red on sweaty faces
After the frosty silence in the gardens
After the agony in stony places
The shouting and the crying
Prison and palace and reverberation
Of thunder of spring over distant mountains
```
--
v4: vkd3d-shader/spirv: Emit variables for flat constant buffers.
vkd3d-shader/ir: Normalise sm1-style constants.
vkd3d-shader/ir: Move normalization code from spirv.c to ir.c.
vkd3d-shader/d3dbc: Scan descriptors for constant register sets.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/273
On Mon Jul 17 16:08:54 2023 +0000, Erich Hoover wrote:
> What I have in staging has a lot more tests than this, were you only
> interested in these ones for some reason or are you just sending in the
> first bit so that rebasing is easier?
In this commit, I only took the tests from [the first patch](https://gitlab.winehq.org/wine/wine-staging/-/blob/4482bd34937ec6ab0….
Essentially, I'm trying to make it easier to upstream the junction point patches by splitting off small pieces of them, cleaning them up, and upstreaming them one at a time.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3331#note_39170
On Fri Jul 14 06:21:02 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=134856
> Your paranoid android.
> === w7pro64 (64 bit report) ===
> ntdll:
> file.c:5702: Test failed: Unexpected error (0x0)
> ```
I honestly don't know why this test failed. I have not been able to reproduce the failure a second time.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3331#note_39167
It's a clean-room reimplementation that mimics Windows 10 program's output format.
It prints all the information that is available via KerbQueryTicketCacheMessage.
Also tested to work on Windows if dynamically linked + built with winegcc.
For further extension of the functonality, implementing
KerbQueryTicketCacheEx{,2,3}Message is required.
--
v5: klist: Add a program that lists Kerberos tickets.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3347
It's a clean-room reimplementation that mimics Windows 10 program's output format.
It prints all the information that is available via KerbQueryTicketCacheMessage.
Also tested to work on Windows if dynamically linked + built with winegcc.
For further extension of the functonality, implementing
KerbQueryTicketCacheEx{,2,3}Message is required.
--
v4: klist: Add a program that lists Kerberos tickets.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3347