- 31 May, 2023 1 commit
-
-
Jacek Caban authored
-
- 21 Feb, 2023 2 commits
-
-
Alexandros Frantzis authored
Normally, a new window_surface has no damage so its draw_start_ticks value is reset at the time of the first lock_surface. However, if contents from the old window_surface are copied to the new one when the window_surface for a window is updated, the new window_surface will be initially damaged. We want to reset the draw_start_ticks value in this case too, to avoid flushes occuring soon after such updates, during the initial redraw of the window_surface. Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
-
Alexandros Frantzis authored
Track ticks since draw start per window_surface, instead of per DC as is currently the case. This change helps reduce visual glitches caused by badly timed flushes when drawing to the same window_surface from multiple DCs (e.g., for child windows). This approach is a better fit for the current heuristic for forcing flushing, which consults the shared window_surface bounds to decide whether this is the start of a draw in order to reset the (currently per DC) draw start time. The problem in the current implementation occurs when a drawing to a DC begins with an already damaged window_surface, e.g., due to draws from other DCs targeting that window_surface. In such a case, the DC draw start time is not reset and refers to the start of some previous draw sequence using this DC, thus increasing the chances that the 50ms time flush limit will be eventually exceeded in the middle of the current draw sequence. In other words, the state of the (shared) window_surface damage is not a reliable indicator of the beginning (or not) of a draw to a DC. An example, assuming DC1 and DC2 target the same window_surface: DC1.start_ticks = 0 DC2.start_ticks = 0 FLUSH_PERIOD = 50 0 flush 1 draw to DC1 -> DC1.start_ticks = 1 ... [no flush] ... 2 draw to DC2 -> DC2.start_ticks remains 0 since surface is damaged ... 50 flush 51 draw to DC1 -> DC1.start_ticks = 51 ... [no flush] ... 52 draw to DC2 -> DC2.start_ticks remains 0 since surface is damaged, current - DC2.start_ticks > FLUSH_PERIOD so we are forced to flush in the middle of the drawing sequence => potential glitch Tracking the draw start per window_surface ameliorates the problem because the beginning of a draw on a DC targeting an undamaged window_surface resets the start time for all DCs targeting that window_surface: ... 50 flush 51 draw to DC1 -> surface.draw_ticks = 51 ... [no flush] ... 52 draw to DC2 -> surface.draw_ticks remains 51 since surface is damaged, but current - surface.draw_ticks < FLUSH_PERIOD, so we do not flush Signed-off-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
-
- 06 Dec, 2022 1 commit
-
-
Jacek Caban authored
-
- 23 Nov, 2022 4 commits
-
-
Alexandre Julliard authored
-
Alexandre Julliard authored
To avoid typecasts in debug traces.
-
Alexandre Julliard authored
-
Alexandre Julliard authored
-
- 17 May, 2022 2 commits
-
-
Zhiyi Zhang authored
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
Zhiyi Zhang authored
The Vulkan device is used for querying video memory information for implementing D3DKMTQueryVideoMemoryInfo(). Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 26 Apr, 2022 1 commit
-
-
Jacek Caban authored
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 18 Apr, 2022 1 commit
-
-
Jacek Caban authored
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 02 Mar, 2022 1 commit
-
-
Paul Gofman authored
To get rid of get_dc_ptr() and thus not to fail concurrent __wine_get_wgl_driver(). Signed-off-by: Paul Gofman <pgofman@codeweavers.com> Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 26 Jan, 2022 1 commit
-
-
Alexandre Julliard authored
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 08 Dec, 2021 1 commit
-
-
Jacek Caban authored
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 03 Nov, 2021 1 commit
-
-
Alexandre Julliard authored
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 18 Oct, 2021 1 commit
-
-
Jacek Caban authored
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-
- 07 Oct, 2021 1 commit
-
-
Jacek Caban authored
Signed-off-by: Jacek Caban <jacek@codeweavers.com> Signed-off-by: Huw Davies <huw@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
-