Well, after installing XP64, I was vindicated — none of the VS.
NET IDEs will install on it, because they rely on the 32-bit .
However, I doubt that there's anything I can use, because the two critical features I need for improving the GF2 path are either doubling the result of the framebuffer blend or another texture stage, both of which are doubtful.
My daily commute takes me across the San Mateo Bridge.
Some do that and have unused space betweeen the Cr and Cb planes (weird). And a few simply don't support it (lame but pragmatic). Unfortunately, no one seems to have bothered to ever define the YV12 format properly in this regard, and thus we have massive confusion.
First, I finally fixed the FAQ link from the program, and also updated the knowledge base for known bugs in 1.5.10.
I know a few of you are going to yell out "use compiler intrinsics," but please look at this first: push ebp mov ebp,esp and esp,0FFFFFFF8h sub esp,8 movd mm1,dword ptr [ebp 8] pxor mm0,mm0 punpcklbw mm1,mm0 movq mm0,mm1 movq mm2,mm0 punpckhwd mm2,mm1 movq mm1,mm2 punpckhwd mm1,mm2 pmullw mm0,mm1 psrlw mm0,8 movq mmword ptr [esp],mm0 emms movq mm0,mmword ptr [esp] movq mm1,mm0 packuswb mm0,mm1 movd eax,mm0 mov esp,ebp pop ebp ret push ebp mov ebp,esp and esp,0FFFFFFF8h sub esp,8 movd mm1,dword ptr [ebp 8] pxor mm0,mm0 punpcklbw mm1,mm0 movq mm0,mm1 punpckhwd mm1,mm0 movq mm2,mm1 punpckhwd mm2,mm1 pmullw mm0,mm2 psrlw mm0,8 movq mmword ptr [esp],mm0 emms movq mm0,mmword ptr [esp] movq mm1,mm0 packuswb mm1,mm0 movd eax,mm1 mov esp,ebp pop ebp ret This, historically, is why I have not bothered to use MMX/SSE/SSE2 compiler intrinsics in Virtual Dub — the code generation sucks.
Now for the real kicker: those extraneous moves hurt on a Pentium 4, because on a P4, a register-to-register MMX/SSE/SSE2 move has a latency of 6 clocks.
Having a configuration called "Win32 Release AMD64" is a bit weird, however.
There are two major bottlenecks to getting Virtual Dub running smoothly on AMD64: the compiler doesn't support inline assembly, and the OS doesn't support MMX for 64-bit tasks.
One of the features I've been working on for 1.6.0 is the ability to do bicubic resampling in the video displays using hardware 3D support.
We've been using simply bilinear for too long, and it's time we had better quality zooms accelerated on the video card.
The problem is that different drivers and applications are inconsistent about how they treat or format odd-width and odd-height YV12 images.