Module: wine
Branch: master
Commit: 3cc8147594de868884d3e57babff8eef058c63a3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=3cc8147594de868884d3e57b…
Author: Henri Verbeet <hverbeet(a)codeweavers.com>
Date: Tue Jan 12 21:15:57 2021 +0330
wined3d: Use glFinish() for synchronisation when cleaning up a destroyed context in wined3d_context_gl_cleanup().
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50485
Signed-off-by: Henri Verbeet <hverbeet(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/wined3d/context_gl.c | 17 ++++++++++++++---
1 file changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c
index 467f5b64d6c..a51e5ec9095 100644
--- a/dlls/wined3d/context_gl.c
+++ b/dlls/wined3d/context_gl.c
@@ -1374,9 +1374,20 @@ static void wined3d_context_gl_cleanup(struct wined3d_context_gl *context_gl)
if (context_gl->valid)
{
- wined3d_context_gl_submit_command_fence(context_gl);
- wined3d_context_gl_wait_command_fence(context_gl,
- wined3d_device_gl(context_gl->c.device)->current_fence_id - 1);
+ /* If we're here because we're switching away from a previously
+ * destroyed context, acquiring a context in order to submit a fence
+ * is problematic. (In particular, we'd end up back here again in the
+ * process of switching to the newly acquired context.) */
+ if (context_gl->c.destroyed)
+ {
+ gl_info->gl_ops.gl.p_glFinish();
+ }
+ else
+ {
+ wined3d_context_gl_submit_command_fence(context_gl);
+ wined3d_context_gl_wait_command_fence(context_gl,
+ wined3d_device_gl(context_gl->c.device)->current_fence_id - 1);
+ }
if (context_gl->dummy_arbfp_prog)
GL_EXTCALL(glDeleteProgramsARB(1, &context_gl->dummy_arbfp_prog));
Module: tools
Branch: master
Commit: e9d470d7e63724d8f989603b47830ece7fc1b1d9
URL: https://source.winehq.org/git/tools.git/?a=commit;h=e9d470d7e63724d8f989603…
Author: Francois Gouget <fgouget(a)codeweavers.com>
Date: Fri Jan 15 16:09:19 2021 +0100
testbot: Take into account configure for the build timeout.
It is likely that configure will need to be rerun after a
make_makefiles, even outside of full rebuilds. In particular this is
the case when adding a new dll, program or test directory.
So take the configure time out of the full-rebuild timeouts and into its
own $ReconfigBuildTimeout setting.
Signed-off-by: Francois Gouget <fgouget(a)codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
testbot/lib/WineTestBot/Config.pm | 11 +++++++----
testbot/lib/WineTestBot/PatchUtils.pm | 7 +++++--
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/testbot/lib/WineTestBot/Config.pm b/testbot/lib/WineTestBot/Config.pm
index 68709e5..2f01e95 100644
--- a/testbot/lib/WineTestBot/Config.pm
+++ b/testbot/lib/WineTestBot/Config.pm
@@ -31,7 +31,7 @@ use vars qw (@ISA @EXPORT @EXPORT_OK $UseSSL $LogDir $DataDir $BinDir
$MaxVMsWhenIdle $WaitForBoot $SleepAfterBoot $SleepAfterRevert
$VMToolTimeout $MaxVMErrors $MaxTaskTries $AdminEMail $RobotEMail
$WinePatchToOverride $WinePatchCc
- $ExeBuildTimeout $ExeModuleTimeout
+ $ReconfigBuildTimeout $ExeBuildTimeout $ExeModuleTimeout
$WineBuildTimeout $WineModuleTimeout $TimeoutMargin
$SuiteTimeout $SingleTimeout $SingleAvgTime $MaxUnitSize
$TagPrefix $ProjectName $PatchesMailingList $LDAPServer
@@ -48,7 +48,7 @@ require Exporter;
$SleepAfterRevert
$VMToolTimeout $MaxVMErrors $MaxTaskTries $AdminEMail
$RobotEMail $WinePatchToOverride $WinePatchCc $SuiteTimeout
- $ExeBuildTimeout $ExeModuleTimeout
+ $ReconfigBuildTimeout $ExeBuildTimeout $ExeModuleTimeout
$WineBuildTimeout $WineModuleTimeout $TimeoutMargin
$SuiteTimeout $SingleTimeout $SingleAvgTime $MaxUnitSize
$TagPrefix $ProjectName $PatchesMailingList
@@ -109,15 +109,18 @@ $MaxVMErrors = 3;
# How many times to run a test that fails before giving up.
$MaxTaskTries = 3;
+# Build configure timeout (in seconds)
+$ReconfigBuildTimeout = 60;
+
# Exe build timeouts (in seconds)
# - For a full build
-$ExeBuildTimeout = 7 * 60;
+$ExeBuildTimeout = 6 * 60;
# - For a single module
$ExeModuleTimeout = 30;
# Wine build timeouts (in seconds)
# - For a full build
-$WineBuildTimeout = 25 * 60;
+$WineBuildTimeout = 24 * 60;
# - For a single module
$WineModuleTimeout = 60;
diff --git a/testbot/lib/WineTestBot/PatchUtils.pm b/testbot/lib/WineTestBot/PatchUtils.pm
index 26c16c4..974ff8e 100644
--- a/testbot/lib/WineTestBot/PatchUtils.pm
+++ b/testbot/lib/WineTestBot/PatchUtils.pm
@@ -521,19 +521,22 @@ sub GetBuildTimeout($$)
# Set $ModuleCount to 0 if a full rebuild is needed
my $ModuleCount = (!$Impacts or $Impacts->{RebuildRoot}) ? 0 :
scalar(keys %{$Impacts->{BuildModules}});
+ my $Reconfig = (!$Impacts or $Impacts->{Autoconf} or $Impacts->{MakeMakefiles});
my ($ExeTimeout, $WineTimeout) = (0, 0);
if ($ExeCount)
{
my $OneBuild = $ModuleCount ? $ModuleCount * $ExeModuleTimeout :
$ExeBuildTimeout;
- $ExeTimeout = $ExeCount * min($ExeBuildTimeout, $OneBuild);
+ $ExeTimeout = $ExeCount * min($ExeBuildTimeout, $OneBuild) +
+ ($Reconfig ? $ExeCount * $ReconfigBuildTimeout : 0);
}
if ($WineCount)
{
my $OneBuild = $ModuleCount ? $ModuleCount * $WineModuleTimeout :
$WineBuildTimeout;
- $WineTimeout = $WineCount * min($WineBuildTimeout, $OneBuild);
+ $WineTimeout = $WineCount * min($WineBuildTimeout, $OneBuild) +
+ ($Reconfig ? $WineCount * $ReconfigBuildTimeout : 0);
}
return $ExeTimeout + $WineTimeout;