Bug 17793 - Calling Matrix.Identity stops NSTimer.CreateRepeatingScheduledTimer callbacks
Summary: Calling Matrix.Identity stops NSTimer.CreateRepeatingScheduledTimer callbacks
Status: RESOLVED FIXED
Alias: None
Product: iOS
Classification: Xamarin
Component: General ()
Version: 7.0.6.x
Hardware: Macintosh Mac OS
: --- normal
Target Milestone: Untriaged
Assignee: Zoltan Varga
URL:
Depends on:
Blocks:
 
Reported: 2014-02-14 19:23 UTC by John Miller [MSFT]
Modified: 2014-02-18 07:26 UTC (History)
6 users (show)

Tags:
Is this bug a regression?: ---
Last known good build:


Attachments
Repo project (5.68 MB, application/zip)
2014-02-14 19:25 UTC, John Miller [MSFT]
Details
Another repro project using Matrix4d.CreatePerspectiveFieldOfView (4.69 KB, application/zip)
2014-02-14 19:56 UTC, Marco Lancione
Details


Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED FIXED

Description John Miller [MSFT] 2014-02-14 19:23:11 UTC
Running the test case attached will reproduce this on a DEVICE only using Xam.iOS 7.0.6. In the simulator it seems to work. 
Running the same test case on a device with Xam.iOS 7.0.5 works normally. 

Might be similar to #17695.

If you comment out the call to Matrix.Identity in Game.cs:line 30 it will work on 7.0.6. 

Xamarin.iOS
Version: 7.0.5.2 (Business Edition)
Hash: 9c42159
Branch: 
Build date: 2013-02-12 20:04:08-0500

Xamarin Studio
Version 4.2.3 (build 54)
Installation UUID: bb00cd30-1c19-4ed5-b390-f732a454afd5
Runtime:
	Mono 3.2.6 ((no/9b58377)
	GTK+ 2.24.23 theme: Raleigh
	GTK# (2.12.0.0)
	Package version: 302060000

MonoGame hotfix 3.0.1
Comment 1 John Miller [MSFT] 2014-02-14 19:25:44 UTC
Created attachment 6061 [details]
Repo project
Comment 3 Marco Lancione 2014-02-14 19:56:11 UTC
Created attachment 6062 [details]
Another repro project using Matrix4d.CreatePerspectiveFieldOfView

Here is another very simple project that reproduces the same issue using Matrix4d.CreatePerspectiveFieldOfView.
Comment 4 Sebastien Pouliot 2014-02-15 13:43:47 UTC
@John the list of version you supplied shows 7.0.5 (not 7.0.6). Does it happens on both ? or just in 7.0.6 ?


@Marco Can you try the 7.0.7 (beta channel) ?

There was an ARM (device specific)  bug in 7.0.6 that could cause some weird behavior (register spilling). That's fixed in 7.0.7 (one of the reasons for doing an hotfix release).
Comment 5 Marco Lancione 2014-02-15 23:58:10 UTC
I can confirm that the problem still occurs with 7.0.7 from the Beta channel.
Comment 6 Rolf Bjarne Kvinge [MSFT] 2014-02-17 08:11:40 UTC
Thanks for the perfect test case.

Here is a simpler one:

	private void Render ()
	{
		Func (0, 0, 0, 0, 0, 0, 0);
	}

	private void Func (double m00, double m01, double m02, double m03, double m10, double m11, double m12)
	{
	}

this clobbers d8. Here's the generated assembly: https://gist.github.com/rolfbjarne/a13236466be2cfcc2231
Comment 7 Rolf Bjarne Kvinge [MSFT] 2014-02-17 10:04:35 UTC
Fixed.

Alex, thanks for the help.

mono/master: fff823116508b904bb7785a0b2968d9842987263
monotouch/master: fc617cdbdb3f0e8bb74d89954e04cbb271bf9424