Commit graph

165181 commits

Author SHA1 Message Date
Billy Laws da4e359a70 ws2_32: Avoid using SOL_IPX to detect whether IPX is supported. 2023-07-04 20:55:31 +02:00
Billy Laws 954bf9e050 ntdll: Avoid using SOL_IPX to detect whether IPX is supported.
4.18+ Linux kernels remove support for IPX but keep SOL_IPX defined, which
causes compilation errors as wine unconditionally uses IPX structures if
this is the case. Instead check for IPX_MTU to determine IPX support as it is
defined within the ipx.h header itself.
2023-07-04 20:52:17 +02:00
Vladislav Timonin a0534afab0 comdlg32: Enable visual styles when showing IFileDialog. 2023-07-04 20:47:39 +02:00
Vladislav Timonin 5bc5d36065 comdlg32: Return E_UNEXPECTED if IFileDialog is already shown. 2023-07-04 20:47:39 +02:00
Matteo Bruni 3149d84502 d3dx9/tests: Use test contexts in test_effect_commitchanges().
And do some mandatory cleanup while at it.
2023-07-04 20:46:07 +02:00
Matteo Bruni 4acb858fc6 d3dx9/tests: Use test contexts in test_effect_preshader_ops(). 2023-07-04 20:46:06 +02:00
Matteo Bruni e39e904392 d3dx9/tests: Get rid of unnecessary checks in test_effect_states(). 2023-07-04 20:46:06 +02:00
Matteo Bruni f529c5db4d d3dx9/tests: Use test contexts in test_effect_parameter_value().
And give a good clean up to the test and all its helpers.
2023-07-04 20:46:05 +02:00
Matteo Bruni 321efd4441 d3dx9/tests: Use test contexts in test_D3DXCreateRenderToEnvMap(). 2023-07-04 20:46:05 +02:00
Matteo Bruni f504db74a9 d3dx9/tests: Get rid of unnecessary checks in test_D3DXCreateRenderToEnvMap(). 2023-07-04 20:46:05 +02:00
Matteo Bruni 06eede965a d3dx9/tests: Use test message contexts in test_ID3DXFont(). 2023-07-04 20:46:05 +02:00
Matteo Bruni 64d9bc872b d3dx9/tests: Get rid of unnecessary checks. 2023-07-04 20:46:05 +02:00
Eric Pouech 8031d00fed d3dx9/tests: Clean up some ok() messages. 2023-07-04 20:46:05 +02:00
Matteo Bruni a3ad4a5066 d3dx9/tests: Increase tolerance for a D3DXSHMultiply3 test.
Otherwise it fails for me on 32-bit Linux with my current compiler.
2023-07-04 20:46:03 +02:00
Zebediah Figura 2740af1448 wined3d: Create fences when the command buffer is allocated.
This shouldn't really make a difference, but does make the code a bit conceptually simpler.
2023-07-04 15:37:36 +02:00
Zebediah Figura c42b4fec1f wined3d: Reuse command buffers and fences.
Allocating and freeing fences in particular can be expensive, as much as 250 µs
per call (observed on an NVidia machine).
2023-07-04 15:37:34 +02:00
Zebediah Figura e0769f42ec wined3d: Set VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT. 2023-07-04 15:37:34 +02:00
Matteo Bruni f032ccc271 wined3d: Reduce CS spin count to 2000.
Over the last few Wine releases we greatly reduced the need for the
application thread to wait for replies from the CS thread. Compared to
the time when the command stream was initially introduced, it's now
quite likely that, when the command queues become empty, they are
going to stay like that for a while (e.g. the game is throttling the
framerate or is busy doing some CPU work on its part before generating
more commands).

As a first step, reduce the spin count to reduce the busy waiting in
wined3d_cs_run(). In my tests this significantly reduces CPU usage,
with minimally decreased performance in a few rare cases but also
significantly improved performance in many cases (notably with
integrated GPUs where freeing the CPU directly allows more power to be
allocated to the GPU).
2023-07-04 15:37:29 +02:00
Matteo Bruni fcccca153a wined3d: Make the CS thread yield CPU when it can't block waiting.
It can't block because there are pending queries.
2023-07-04 15:37:28 +02:00
Matteo Bruni ecdeab593b wined3d: Call YieldProcessor() when spinning waiting for CS commands.
Yielding to other threads might help to get new packets and (very
slightly) reduce contention on the queue head and tail pointers.
2023-07-04 15:37:26 +02:00
Matteo Bruni 30c3697017 wined3d: Block in wined3d_cs_emit_present() when we reach the latency limit.
Avoid busy spinning for a potentially long time.
2023-07-04 15:37:24 +02:00
Matteo Bruni 203cbab644 wined3d: Increase the CS queue size to 16 MiB on 64-bit architectures.
With the buffer / texture mapping acceleration bits working properly, we
can get many outstanding commands and, to avoid blocking the client thread
while waiting for free space, we need a larger queue. 16 MiB was always
enough in my testing (8 MiB wasn't in a few cases).

Keep a lower limit on 32-bit since we're often times address
space-starved there.

Tweaked by Zebediah Figura.
2023-07-04 15:37:22 +02:00
Giovanni Mascellani aeb9776f4c dxgi: Split D3D12/Vulkan resource creation and destruction.
This is to eventually hand frontend and backend resource management
to different code pieces.
2023-07-04 15:37:16 +02:00
Giovanni Mascellani b4741fd259 dxgi: Pass a VkImage to d3d12_swapchain_queue_present().
This is to eventually allow d3d12_swapchain_queue_present() to
operate on a certain VkImage even if current_buffer_index has
already been modified since the corresponding Present() call.
2023-07-04 15:37:15 +02:00
Giovanni Mascellani 89cd45bb1f dxgi: Free the frontend images memory only once. 2023-07-04 15:37:15 +02:00
Giovanni Mascellani e5c232eb4c dxgi: Consider vk_format a frontend field.
This is an oversight in eec9c3a2f6:
vk_format specifies the format used for the frontend resources. The backend
images could use a different format, depending on what the swapchain
supports.

Also, introduce the terms "frontend" and "backend" for the two sides
of the swapchain, which are probably easier to understand.
2023-07-04 15:37:12 +02:00
Giovanni Mascellani e1cdc48786 dxgi/tests: Test that the present count is updated when Present() is called. 2023-07-04 15:37:12 +02:00
Giovanni Mascellani 1a0c2d6b41 dxgi/tests: Test that the back buffer index is updated when Present() is called. 2023-07-04 15:37:12 +02:00
Fabian Maurer b2c774d4d2 vbscript: Support one-line sub/function.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54978
2023-07-04 15:37:08 +02:00
Mohamad Al-Jaf 0fb31cfc5d windows.devices.bluetooth: Implement IBluetoothAdapterStatics::GetDeviceSelector().
Needed for Revo Scan 5.
2023-07-04 13:14:04 +02:00
Mohamad Al-Jaf b058274317 windows.devices.bluetooth/tests: Add IBluetoothAdapterStatics::GetDeviceSelector() tests. 2023-07-04 13:14:04 +02:00
Mohamad Al-Jaf 5e942086dc windows.devices.bluetooth: Add IBluetoothAdapterStatics stub interface. 2023-07-04 13:14:04 +02:00
Mohamad Al-Jaf f9305432c8 windows.devices.bluetooth: Add stub DLL. 2023-07-04 13:14:04 +02:00
Mohamad Al-Jaf 581ad52940 include: Add windows.devices.bluetooth.idl file. 2023-07-04 13:13:46 +02:00
Mohamad Al-Jaf 83cb93ee6d include: Add windows.devices.radios.idl file.
Needed by IBluetoothAdapter in windows.devices.bluetooth.idl.
2023-07-04 13:13:44 +02:00
Davide Beatrici b12e6fcc21 wineoss: Move create_session into mmdevapi. 2023-07-04 13:08:31 +02:00
Davide Beatrici a97913587e winecoreaudio: Move create_session into mmdevapi. 2023-07-04 13:08:31 +02:00
Davide Beatrici 066ac0a8f9 winealsa: Move create_session into mmdevapi. 2023-07-04 13:08:31 +02:00
Davide Beatrici 75276f010d winepulse: Move create_session into mmdevapi. 2023-07-04 13:08:31 +02:00
Davide Beatrici b61e02f798 wineoss: Move session_init_vols into mmdevapi. 2023-07-04 13:08:31 +02:00
Davide Beatrici be53319da5 winecoreaudio: Move session_init_vols into mmdevapi. 2023-07-04 13:08:31 +02:00
Davide Beatrici d0a3b11932 winealsa: Move session_init_vols into mmdevapi. 2023-07-04 13:08:31 +02:00
Davide Beatrici 8247b00f82 winepulse: Move session_init_vols into mmdevapi. 2023-07-04 13:08:31 +02:00
Alexandre Julliard 09c7cc1e36 shlwapi: Use nameless unions/structs. 2023-07-04 13:07:18 +02:00
Alexandre Julliard dd1625476f shell32/tests: Use nameless unions/structs. 2023-07-04 13:07:18 +02:00
Alexandre Julliard 5cb7274403 shell32: Use nameless unions/structs. 2023-07-04 13:07:18 +02:00
Alexandre Julliard 7c1d8b29e5 ole32/tests: Use nameless unions/structs. 2023-07-04 13:07:18 +02:00
Alexandre Julliard 61a06d4bcd ole32: Use nameless unions/structs. 2023-07-04 13:07:18 +02:00
Alexandre Julliard 34ab144f04 oleaut32/tests: Use nameless unions/structs. 2023-07-04 13:07:18 +02:00
Alexandre Julliard 374d74e843 oleaut32: Use nameless unions/structs. 2023-07-04 13:07:18 +02:00