Re: [Audacity-devel] VC2012 and wxWidgets30
A free multi-track audio editor and recorder
Brought to you by:
aosiniao
From: Vaughan J. <va...@au...> - 2014-02-20 00:53:08
|
On 2/19/2014 3:17 PM, James Crook wrote: > Hi Andrew, > > Can you give a status update on the shift to vs2012 and wx3.0? > Are your changes ready for prime time? > > > My understanding is: > - The switch from wx2.8 to wx3.0 is controlled by a #define. So we > could take the code right now, and stay on 2.8 and vs2008 with no issues. > - wx3.0 opens a route to supporting retina display on Mac. Not > practical with wx2.8. > - There are other advantages to shifting to wx3.0 and vc2012. (please > spell them out). > - The combination wx3.0 + vs2012 works. > - The combination wx2.8 + vs2012 works. > - The combination wx2.8 + vs2008 works. > - The combination wx3.0 + vs2008 doesn't work. Please say a bit more > about the Unicode problem you encountered here. I don't think we > necessarily would need that combination, but it would be good to > understand whether it is 'our problem' or wxWidgets'. > > We do want to be able to support retina display. > At some point we want to move to vs2012. > At some point we want to move to wx3.0. > > As (it sounds like) you have done the work, +1. >now could be a very good > time to switch both, and we just need to get agreement that that is a > good step to make. Very much -1. There's already a great deal of new stuff in 2.0.6-alpha. Even with the possible safe encapsulation via #define (and we've seen it fail before), I'm opposed to adding substantial changes until we release 2.0.6. And I think we should release 2.0.6 soon. That requires some discussions on team@, not here, though. - Vaughan > From the sounds of things I would be keen at the very least to get the > code that works in both wx2.8 and wx3.0 into svn, and if no one has > objections, then take the next step and switch to both wx3.0 and vs2012. > > --James. > > > > > On 20/01/2014 04:50, Andrew Hallendorff wrote: >> On 1/19/2014 7:20 PM, Vaughan Johnson wrote: >>> On 1/18/2014 5:43 PM, Andrew Hallendorff wrote: >>>> I don't mind being the only one who can run on 2012 wx3. wx2.8 is not >>>> supported in 2010+. >>> Really? Leland and Martyn got it working with VS2012, afaik. >>> >>> >> I couldn't get it to work. When I compiled with the >> >> #if !defined __WXWINCE__ && !defined NEED_PBT_H >> #include <pbt.h> >> #endif >> >> removed from widgets. It would run but you couldn't load a file. It >> would puke out an >> >> Unhandled exception at 0x59CD73B3 (msvcr110d.dll) in Audacity.exe: >> An invalid parameter was passed to a function that considers invalid >> parameters fatal. >> >> Basically it seemed to be trying to load a file with a unicode string >> and puking. >> >> >> >> So time for a funny story. >> >> I did some work to put AVX into the EQ code just to see how it would >> run. (vc2008 does not do AVX btw) In doing so I doubled the buffers when >> AVX is present as it basically uses 8x the data the same way sse uses 4x >> the data. This does not prevent sse from running in the same buffers. So >> I put a little function to half the size of the buffer in the sse >> routine if it detects AVX being active. I put in. >> >> int >> subBufferSize=mBufferCount<8?(mSubBufferSize>>1):mSubBufferSize; // half >> the buffers if avx is active >> >> but it should of been. >> >> int >> subBufferSize=mBufferCount==8?(mSubBufferSize>>1):mSubBufferSize; // >> half the buffers if avx is active >> >> Because of this the 4x routines copied half the data in and out when >> they executed. Thus doing twice the work and ignoring half the processed >> calculations. >> >> So after this change, I went back to testing. I started getting not so >> great results for sse. So instead of looking for the problem I went to >> tweaking VS to see why this was the case. After this didn't work I wrote >> a threaded single operation math path version and got results almost >> equal to the sse code. After reading somewhere on the net about VS2008 >> not handling sse well, I said to myself the next logical step is to test >> on vc2012. After spending half a day not getting vc2012 to work with >> wx28, I looked at the wxWidgets site and read the wx28 was not >> compatible with vc2012. So then I found the posts about getting wx3 to >> work and followed them. I didn't get very far. >> >> Edgar's post in the forums was a great start but there was no final >> resolution. After making a few of the changes necessary I figured out >> why. Although many of the changes were trivial, some were kind of >> advanced requiring new virtual functions and such. I decided if I was >> going to do all the changes I might as well make every change reversible >> to the wx28 base regardless of how trivial they were. Believe me it was >> hard to leave some of them in. This is good because they are marked and >> can be validated later. I ironically spent about 3hrs trying to chase >> down why FileDialog would link error for some odd reason. It turns out >> that the project of FileDialog has its own path to widgets and because >> of this it was still pointing to the wx28 directory. Yes I decided to do >> this work in such a way that both 2.8 and 3.0 can exist on the same >> machine. >> >> A real strange error was http://trac.wxwidgets.org/ticket/11482 in >> XMLTagHandler.cpp on a wx void yeald()=0 virtual function. >> >> So I finally finish debug, it seems to run fine. Thinking I'm done I >> move on to release and it dies on all these files. So after chasing a >> few rabbits, it turns out that some files were inheriting their headers >> from other files and some files didn't get the functions they needed. >> Tedious but manageable, I finally get release to run. >> >> I get to testing and one thing you begin to notice in 2012 is debug is >> kind of slow. I don't know if it's doing extra checks during runtime but >> it makes comparing things hard. I run the same tests in release and I >> get basically the same results as vc2008. So now I know the error is in >> the routines. Luckily it actually didn't take me long to figure out the >> subBufferSize error above. >> >> So all the above is a byproduct of a misplaced inequality. >> >> Andrew Hallendorff > > > ------------------------------------------------------------------------------ > Managing the Performance of Cloud-Based Applications > Take advantage of what the Cloud has to offer - Avoid Common Pitfalls. > Read the Whitepaper. > http://pubads.g.doubleclick.net/gampad/clk?id=121054471&iu=/4140/ostg.clktrk > _______________________________________________ > audacity-devel mailing list > aud...@li... > https://lists.sourceforge.net/lists/listinfo/audacity-devel > |