E_OUTOFMEMORY hResult with DirectX 10
Until now I had never seen this return code. My DirectX 10 program had been running perfectly fine on a Vista laptop, and the code used a REFERENCE device type for the Direct3D component.
Now, on my desktop, I have a DirectX 10 compatible video card, with Vista also installed now (sad to say, but necessary >_<).
The weird thing is, if I leave my code exactly the way it is, the very first hResult function call <<D3D10CreateDeviceAndSwapChain>> will always return E_OUTOFMEMORY. I highly doubt it is a VRAM problem (I have 1024 MB) and my system RAM is 3 GB, plenty of which is still available. Just by chance I switched the device type from REFERENCE to HARDWARE, and it works like a charm now. I tried to look up information about this but I am confused......it does not seem like memory should be a problem in that particular scenario. Is the hResult function call SUPPOSED to return that error code if I have a compatible hardware device? I just want to understand this so I can potentially avoid and/or understand future issues.