The PE build uses FlsAlloc(), which for our purposes makes no difference vs TlsAlloc(), and allows the use of a destruction callback.
--
v6: vkd3d: Replace the descriptor object cache with a thread-local implementation.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/384
On Thu Oct 19 13:35:46 2023 +0000, Francisco Casas wrote:
> I see. So the `probe` part may be deserving of a `todo(sm<4)`.
> I made patches for that on the second part of !418, but I think that for
> now it is okay to leave the requirement.
Oh no, you are right, compiling with the native compiler and running on Windows we get those broken results, so it is not a problem of the compiler itself.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/417#note_49297
On Thu Oct 19 09:51:46 2023 +0000, Nikolay Sivov wrote:
> It does compile, but results are broken. That's what I get on Windows:
> `shader_runner:683: Section [test], line 51: Test failed: Got
> {8.40779079e-045, 9.80908925e-045, -1.#QNAN000e+000, 4.20389539e-045},
> expected {6.00000000e+000, 7.00000000e+000, -1.00000000e+000,
> 3.00000000e+000} at (0, 0).`
> That happens because of the lack of itof conversion on SM3. So ints we
> set are returned as is, after ceil() is optimized away for integers.
I see. So the `probe` part may be deserving of a `todo(sm<4)`.
I made patches for that on the second part of !418, but I think that for now it is okay to leave the requirement.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/417#note_49293
because it's explicitly requested. man machine-id
> ```plaintext
> This ID uniquely identifies the host. It should be considered "confidential", and must not be exposed in untrusted environments, in particular on the network. If a stable unique identifier that is tied to the machine is needed for some application, the machine ID or any part of it must not be used directly. Instead the machine ID should be hashed with a cryptographic, keyed hash function, using a fixed, application-specific key. That way the ID will be properly unique, and derived in a constant way from the machine ID but there will be no way to retrieve the original machine ID from the application-specific one. The sd_id128_get_machine_app_specific(3) API provides an implementation of such an algorithm.
> ```
(looks like /etc/machine-id should never have been user readable, and this is about reducing the exposure)
for the second patch in the serie, the we need to craft missing info (because some DMI fields are only readble by root), do you also recommand to reuse directly machine-id? (it would be better to not tie the values to a given prefix, anticheat vendors will not like it), so the least worst choice is deriving from machine-id.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4108#note_49291
We used to have some hack for passing information (mainlyi
module related ones) from dbghelp to WineDbg.
This series:
- reimplements properly the sharing, introducing a Wine
entrypoint to dbghelp (sharing debug formats not handled
by native, no longer decorating module names for sharing
that module was in fact a host module...)
- improves "info share" command in WineDbg with more accurate
information (host module type...)
- improves loading time on MacOs (some system libraries no
longer have their images accessible directly on disk by
standard file operation).
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4142
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v2: vkd3d-shader: Add constant folding for 'floor'.
vkd3d-shader: Add a missing entry to instruction debug print helper.
vkd3d-shader: Add constant folding for 'ceil'.
vkd3d-shader: Add support for floor() on SM1-3.
vkd3d-shader: Add support for ceil() on SM1-3.
vkd3d-shader/tpf: Add support for ceil().
vkd3d-shader/hlsl: Parse ceil() function.
tests: Add some tests for ceil().
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/417
Goes atop MR 388 and 401. The last five commits belong to this MR.
--
v3: vkd3d-shader/dxil: Implement the DXIL EXTRACTVAL instruction.
vkd3d-shader/spirv: Support scalar swizzle of vector SSA registers.
vkd3d-shader/dxil: Implement DX instruction CBufferLoadLegacy.
vkd3d-shader/dxil: Implement DX instruction CreateHandle.
vkd3d-shader/dxil: Move the register_address_init() index parameter to position 2.
vkd3d-shader/dxil: Read CBV descriptors.
vkd3d-shader: Emit IR CBV declaration sizes in bytes.
vkd3d-shader/dxil: Validate the descriptor list metadata nodes.
vkd3d-shader/spirv: Align constant buffer sizes to 16 bytes.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/408
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v7: programs/vkd3d-compiler: Dynamically allocate options array.
vkd3d-shader/tpf: Convert some of the semantic names to system values names when in compatibility mode.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/381
--
v3: wined3d: Don't skip setting clip planes if the view transform state is dirty.
wined3d: Implement shadow sampling for the ARB shader backend.
wined3d: Allow FFP blits to non-render targets with the 'none' shader backend.
wined3d: Handle NULL push constant buffers with the ARB shader backend.
wined3d: Fix handling of system-memory GL vertex buffers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4085
First part of a series that allows the shader-runner to test SM1 compilation on [shader] directives even if a backend to run these tests is not available and prepare they way for SM1-only tests.
Specifically:
- Compile [shader] directives separately from backend execution (on part 1).
- Allow specifying more detailed shader ranges for todo(), fail() and notimpl() qualifiers (on part 2).
- Always test shader compilation with SM1 profiles (on part 2).
The `minimum_shader_model` and `maximum_shader_model` parameters for run_shader_tests() are interpreted in the following way:
> Ask the pertaining backend to run the shader_test file so that each test is executed with the lowest profile it can support within the range of shader models specified, if any.
This allows us to control how many shader models we want to test for each backend, e.g.:
```
run_shader_tests(..., SHADER_MODEL_2_0, SHADER_MODEL_3_0)
run_shader_tests(..., SHADER_MODEL_4_0, SHADER_MODEL_5_1)
run_shader_tests(..., SHADER_MODEL_6_0, SHADER_MODEL_6_0)
```
versus
```
for (i = SHADER_MODEL_2_0, i <= SHADER_MODEL_6_0, ++i)
run_shader_tests(..., i, i);
```
Also, to allow to compile [shader] directives, which are not backend-specific, separately from the [test] directives, which are, the run_shader_tests() function is modified to skip backend specific directives if the shader_runner_ops is NULL.
Following patches are on my [master6i](https://gitlab.winehq.org/fcasas/vkd3d/-/commits/master6i) branch.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/418
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v6: programs/vkd3d-compiler: Dynamically allocate options array.
vkd3d-shader/tpf: Convert some of the semantic names to system values names when in compatibility mode.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/381
This allows *BSDs to also have a fast path similar to futexes for thread-ID alerts.
Also a kevent with `EV_CLEAR` and `NOTE_TRIGGER` maps perfectly to the thread alertable state, fixing the issue of the current mach-semaphore implementation not correctly waiting in the test case below:
```
NtAlertThreadByThreadId((HANDLE)GetCurrentThreadId());
NtAlertThreadByThreadId((HANDLE)GetCurrentThreadId());
NtWaitForAlertByThreadId(NULL, NULL);
NtWaitForAlertByThreadId(NULL, NULL);
```
I took the liberty to remove this mach semaphore implementation, since all versions of OSX have supported kqueue().
--
v5: ntdll: Implement thread-ID alerts using ulock.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4049
This is a continuation to !406. With this MR all the tests pass on Windows. [The next step is to allow the CI to run crosstests on Windows](https://gitlab.winehq.org/giomasce/vkd3d/-/commits/ci3).
--
v2: tests: Skip processing resources according to [require] directives.
tests: Do not test matrix majority on SM1-3.
tests: Fix the usage of require directives.
tests: Remove an irrelevant input from a test.
tests: Do not test integral types for SM1-3.
tests: Do not use global half values.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/412
Fixes a hang when joining a multiplayer game in Burnout Paradise Remastered. The game expects to find a space in the device name and spins forever trying if it can't.
--
v2: winepulse.drv: Change device description to "PulseAudio Device".
https://gitlab.winehq.org/wine/wine/-/merge_requests/4096
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v20: vkd3d-shader/tpf: Write out 'switch' statements.
vkd3d-shader/hlsl: Add a pass to normalize switch cases blocks.
vkd3d-shader/hlsl: Add a pass to remove unreachable code.
vkd3d-shader/hlsl: Add copy propagation logic for switches.
vkd3d-shader/hlsl: Validate break/continue context.
vkd3d-shader/hlsl: Check for duplicate case statements.
vkd3d-shader/hlsl: Add initial support for parsing 'switch' statements.
tests: Add some tests for the 'switch' statements.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/361
It's no problem to send fewer of these per MR. I have included the complete set because all but the last introduce no functional changes, and upstreaming a smaller set would leave the changes in a half-done state with unnecessary buffering.
--
v8: vkd3d: Store command list commands in a buffer until executed.
vkd3d: Store WriteBufferImmediate() arguments in a buffer.
vkd3d: Store ExecuteIndirect() arguments in a buffer.
vkd3d: Store SetPredication() arguments in a buffer.
vkd3d: Store ResolveQueryData() arguments in a buffer.
vkd3d: Store EndQuery() arguments in a buffer.
vkd3d: Store BeginQuery() arguments in a buffer.
vkd3d: Store d3d12_command_list_clear_uav() arguments in a buffer.
vkd3d: Store ClearRenderTargetView() arguments in a buffer.
vkd3d: Store ClearDepthStencilView() arguments in a buffer.
vkd3d: Store OMSetRenderTargets() arguments in a buffer.
vkd3d: Store SOSetTargets() arguments in a buffer.
vkd3d: Store IASetVertexBuffers() arguments in a buffer.
vkd3d: Store IASetIndexBuffer() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_descriptor() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_cbv() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_constants() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_descriptor_table() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_signature() arguments in a buffer.
vkd3d: Add an internal refcount to struct d3d12_root_signature.
vkd3d: Store ResourceBarrier() arguments in a buffer.
vkd3d: Store SetPipelineState() arguments in a buffer.
vkd3d: Store OMSetStencilRef() arguments in a buffer.
vkd3d: Store OMSetBlendFactor() arguments in a buffer.
vkd3d: Store RSSetScissorRects() arguments in a buffer.
vkd3d: Store RSSetViewports() arguments in a buffer.
vkd3d: Store IASetPrimitiveTopology() arguments in a buffer.
vkd3d: Store ResolveSubresource() arguments in a buffer.
vkd3d: Store CopyResource() arguments in a buffer.
vkd3d: Store CopyTextureRegion() arguments in a buffer.
vkd3d: Store CopyBufferRegion() arguments in a buffer.
vkd3d: Store Dispatch() arguments in a buffer.
vkd3d: Store DrawIndexedInstanced() arguments in a buffer.
vkd3d: Store DrawInstanced() arguments in a buffer.
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/vkd3d/-/merge_requests/294
--
v2: wined3d: Don't skip setting clip planes if the view transform state is dirty.
wined3d: Implement shadow sampling for the ARB shader backend.
wined3d: Allow FFP blits to non-render targets with the 'none' shader backend.
wined3d: Handle NULL push constant buffers with the ARB shader backend.
wined3d: Fix handling of system-memory GL vertex buffers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4085
Signed-off-by: Nikolay Sivov <nsivov(a)codeweavers.com>
--
v18: vkd3d-shader/tpf: Write out 'switch' statements.
vkd3d-shader/hlsl: Add a pass to normalize switch cases blocks.
vkd3d-shader/hlsl: Add a pass to remove unreachable code.
vkd3d-shader/hlsl: Add copy propagation logic for switches.
vkd3d-shader/hlsl: Validate break/continue context.
vkd3d-shader/hlsl: Check for duplicate case statements.
vkd3d-shader/hlsl: Add initial support for parsing 'switch' statements.
tests: Add some tests for the 'switch' statements.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/361
--
v4: user32: Pass real argument to NtUserGetClassName in RealGetWindowClass{A/W}.
win32u: Add support for retrieving real window class ID across processes.
user32: Set real window class ID for user32 standard controls.
win32u/tests: Add a test for real window class name retrieval.
comctl32/tests: Add tests for RealGetWindowClass.
user32/tests: Add tests for RealGetWindowClass.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4092
This fixes a build error on FreeBSD, where Wayland libraries/tools might be present but `linux/input.h` is not unless the `evdev-proto` package is installed and `CPPFLAGS=-I/usr/local/include` is set.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4132
This depends on !412, and might need some finishing touches before being ready.
--
v3: ci: Run the HLSL compiler tests on Windows.
ci: Run the HLSL preprocessor tests on Windows.
ci: Run cross tests on Windows.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/413
This series:
- fixes a couple of issues in mach-o modules support
(getting information from system modules in wow setups,
machine information...)
- stops hiding information in some fields between dbghelp
and winedbg (using an extensible solution, where more
information can be shared in the future)
- display elf/mach-o in winedbg (previously mach-o was
reported as elf)
- display PE native vs builtin module information in winedbg
--
v2: dbghelp: Remove unneeded parameter to pe_map_file.
dbghelp: Simplified module_find_by_addr().
dbghelp: Set the machine type for mach-O modules.
dbghelp: Use is_host_64bit for handling bitness of mach-o libs.
dbghelp: Rename internal field (system -> host).
https://gitlab.winehq.org/wine/wine/-/merge_requests/3975
--
v3: cryptui: Use CertNameToStr(CERT_NAME_STR_NO_QUOTING_FLAG) to disable quoting.
crypt32: Add support for CERT_NAME_STR_NO_QUOTING_FLAG to CertNameToStr().
crypt32/tests: Add some tests for quoted RDN values.
crypt32: Avoid truncating unicode chars.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3729
It's no problem to send fewer of these per MR. I have included the complete set because all but the last introduce no functional changes, and upstreaming a smaller set would leave the changes in a half-done state with unnecessary buffering.
--
v7: vkd3d: Store command list commands in a buffer until executed.
vkd3d: Store WriteBufferImmediate() arguments in a buffer.
vkd3d: Store ExecuteIndirect() arguments in a buffer.
vkd3d: Store SetPredication() arguments in a buffer.
vkd3d: Store ResolveQueryData() arguments in a buffer.
vkd3d: Store EndQuery() arguments in a buffer.
vkd3d: Store BeginQuery() arguments in a buffer.
vkd3d: Store d3d12_command_list_clear_uav() arguments in a buffer.
vkd3d: Store ClearRenderTargetView() arguments in a buffer.
vkd3d: Store ClearDepthStencilView() arguments in a buffer.
vkd3d: Store OMSetRenderTargets() arguments in a buffer.
vkd3d: Store SOSetTargets() arguments in a buffer.
vkd3d: Store IASetVertexBuffers() arguments in a buffer.
vkd3d: Store IASetIndexBuffer() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_descriptor() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_cbv() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_constants() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_descriptor_table() arguments in a buffer.
vkd3d: Store d3d12_command_list_set_root_signature() arguments in a buffer.
vkd3d: Add an internal refcount to struct d3d12_root_signature.
vkd3d: Store ResourceBarrier() arguments in a buffer.
vkd3d: Store SetPipelineState() arguments in a buffer.
vkd3d: Store OMSetStencilRef() arguments in a buffer.
vkd3d: Store OMSetBlendFactor() arguments in a buffer.
vkd3d: Store RSSetScissorRects() arguments in a buffer.
vkd3d: Store RSSetViewports() arguments in a buffer.
vkd3d: Store IASetPrimitiveTopology() arguments in a buffer.
vkd3d: Store ResolveSubresource() arguments in a buffer.
vkd3d: Store CopyResource() arguments in a buffer.
vkd3d: Store CopyTextureRegion() arguments in a buffer.
vkd3d: Store CopyBufferRegion() arguments in a buffer.
vkd3d: Store Dispatch() arguments in a buffer.
vkd3d: Store DrawIndexedInstanced() arguments in a buffer.
vkd3d: Store DrawInstanced() arguments in a buffer.
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/vkd3d/-/merge_requests/294
We get quite a bunch of failures (even segfaults) when running
the pipeline's tests on GitLab.
This small series fixes the crashes in the filtergraph test
(basically, the expected error code wasn't returned).
I tested manually in Windows that the EC in the serie match
what Windows return.
But that's not the end of the story: in GitLab, only the 32bit
tests fail, while on my test env (VM without any audio attach)
both 32 and 64 segfaulted at the same spot.
Given the error messages above the segfault in gitlab traces
(complaining about not accessing nor mapping alsa' fd),
they're likely some other issues to look at.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4130
We have always repeated that Wine is not a sandbox. It cannot inherently be a sandbox, because we cannot prevent Windows applications from accessing host resources or performing syscalls, and there is no reason for us to include a sandbox instead of simply requiring that any concerned users run Wine inside a separate sandbox.
Why is this case any different?
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4108#note_49045