Enforce proper atomic update so that other threads do not read stale
data from IO_STATUS_BLOCK.
Signed-off-by: Jinoh Kang <jinoh.kang.kr(a)gmail.com>
--
v17: ntdll: Fix reading stale Information from IOSB.
https://gitlab.winehq.org/wine/wine/-/merge_requests/155
On Windows, application-specific settings are stored in the registry
under HKCU\\Console\\<path_to_app>.
Our implementation of conhost.exe does not know which process is
connected to it, so we need to get the full process image name before
loading any application-specific console settings.
To do this, we extend the server protocol to pass the process Id of
the connected console process to conhost.exe.
Please run tools/make_requests before merging.
--
v4: conhost: Load/Save console settings using the process path or window title
https://gitlab.winehq.org/wine/wine/-/merge_requests/1492
On Linux, the FAT filesystem implementation allows DOS file attributes to be applied to files and
queried through a family of ioctls. Note that these ioctls are not yet supported by the NTFS or CIFS
drivers.
Signed-off-by: Joel Holdsworth <joel(a)airwebreathe.org.uk>
--
v4: ntdll: Add integration with Linux FAT file attributes
https://gitlab.winehq.org/wine/wine/-/merge_requests/1414
This patch series includes an implementation of the long-pending `transpose` intrinsic and the `smoothstep` intrinsic.
While implementing `smoothstep` I realized that some intrinsics have different rules for the allowed data types than expressions:
- Vectors and matrices at the same time are not allowed, regardless of their dimensions. Even if they have the same number of components.
- Any combination of matrices is always allowed, even those when no matrix fits inside another, e.g.:
`float2x3` is compatible with `float3x2`, resulting in `float2x2`.
The common data type is the min on each dimension.
This is the case for `max`, `pow`, `ldexp`, `clamp` and `smoothstep`; which suggest that it is the case for all intrinsics where the operation is applied element-wise. So this was corrected.
A minor fix in `pow`'s type conversion is also included.
--
v2: vkd3d-shader/hlsl: Use add_unary_arithmetic_expr() in intrinsic_pow().
vkd3d-shader/hlsl: Convert elementwise intrinsics args to the proper common type.
tests: Test for common type conversion for element-wise intrinsics.
vkd3d-shader/hlsl: Support smoothstep() intrinsic.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/53
This is a draft proposal for enabling long types in wined3d.
Its purpose is to share with wined3d maintainers the best way to
enable long types. It's not meant to be committed as is (draft MR).
I tried to minimize the number of changes by migrating some types to
pure int/unsigned int types.
The net result is not a huge change, but still quite a change:
dlls/d3d11/device.c | 6 +-
dlls/d3d8/device.c | 4 +-
dlls/d3d9/device.c | 4 +-
dlls/ddraw/ddraw.c | 4 +-
dlls/wined3d/Makefile.in | 1 -
dlls/wined3d/adapter_gl.c | 32 ++++-----
dlls/wined3d/adapter_vk.c | 18 +++---
dlls/wined3d/arb_program_shader.c | 84 ++++++++++++------------
dlls/wined3d/ati_fragment_shader.c | 4 +-
dlls/wined3d/buffer.c | 16 ++---
dlls/wined3d/context_gl.c | 26 ++++----
dlls/wined3d/cs.c | 14 ++--
dlls/wined3d/device.c | 52 +++++++--------
dlls/wined3d/directx.c | 40 ++++++------
dlls/wined3d/glsl_shader.c | 112 ++++++++++++++++----------------
dlls/wined3d/nvidia_texture_shader.c | 12 ++--
dlls/wined3d/palette.c | 14 ++--
dlls/wined3d/query.c | 34 +++++-----
dlls/wined3d/resource.c | 12 ++--
dlls/wined3d/sampler.c | 4 +-
dlls/wined3d/shader.c | 51 ++++++++-------
dlls/wined3d/shader_sm1.c | 12 ++--
dlls/wined3d/shader_sm4.c | 62 +++++++++---------
dlls/wined3d/shader_spirv.c | 4 +-
dlls/wined3d/state.c | 84 ++++++++++++------------
dlls/wined3d/stateblock.c | 36 +++++------
dlls/wined3d/surface.c | 32 ++++-----
dlls/wined3d/swapchain.c | 85 ++++++++++++------------
dlls/wined3d/texture.c | 60 ++++++++---------
dlls/wined3d/utils.c | 34 +++++-----
dlls/wined3d/vertexdeclaration.c | 10 +--
dlls/wined3d/view.c | 26 ++++----
dlls/wined3d/wined3d_main.c | 16 ++---
dlls/wined3d/wined3d_private.h | 122 +++++++++++++++++------------------
include/wine/wined3d.h | 29 +++++----
35 files changed, 580 insertions(+), 576 deletions(-)
This is a fairly long series as:
- long type enabling is done on a file basis instead of the module basis.
- I tried to split as much as possible:
+ global changes (shared across multiple file)
+ type changes linked to a single file
+ printf-related changes linked to a single file.
At the implementation level, there's lots of things to be discussed:
- choice of integral type (unsigned int/uint32_t/UINT...). I tried to
follow Zebediah's guide-lines. Even if there are counter examples.
- changing type vs changing printf (there are still areas to tackle if
needed), even if some are (IMO) unavoidable (like GetLastError() or
HRESULT)
So comments welcome. I likely start next week pushing the first bits.
--
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/1446
First part of v2 of !38, trying to follow the wide feedback provided.
Following patches in: https://gitlab.winehq.org/fcasas/vkd3d/-/tree/documentation
--
v2: vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_src.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ir_node.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ctx.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_ir_var.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_struct_field.
vkd3d-shader/hlsl: Add field-level documentation to struct hlsl_type.
vkd3d-shader/hlsl: Rename hlsl_struct_field.modifiers to "storage_modifiers".
vkd3d-shader/hlsl: Rename hlsl_ir_var.modifiers to "storage_modifiers".
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/50
GCC12.2 warns about dereferencing a pointer to RpcPktHdr
while it has been allocated to the size of one of the packet
(hence smaller in some cases).
/home/eric/work/wine/dlls/rpcrt4/rpc_message.c:111:26: warning: array subscript 'RpcPktHdr[0]' is partly outside array bounds of 'unsigned char[24]' [-Warray-bounds]
111 | Header->common.rpc_ver = RPC_VER_MAJOR;
This patch fixes the warnings by accessing the created object
through a pointer to their type (and not through the union).
Notes:
- the 'max(sizeof(...), FIELD_OFFSET(...))' thingie in
RPCRT4_BuildBindNackHeader avoids also a warning as the
FIELD_OFFSET() can be smaller than the size of the structure.
This could be avoided by using a flexible array member for
the 'protocols' field instead of 'protocols[ANYSIZE_ARRAY]'.
- I only changed the allocation routines when the allocated size
is smaller than the union.
If the strategy is validated, one could consider applying the
same allocation strategy to all helpers for symmetry reasons.
Hence the draft status for now, waiting for feedback.
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1545