Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

DirectX 9 with Intel Extreme Graphics

340 views
Skip to first unread message

Boris Schaeling

unread,
Jul 16, 2009, 9:48:05 AM7/16/09
to
I'm trying to get a DirectX screensaver to work on HP Compaq d510 and HP
Compaq d530 (running Windows XP SP2). According to the specs they have the
Intel Extreme Graphics (integrated with Intel 845G chipset) and the Intel
Extreme Graphics 2 (integrated with Intel 865G chipset) built in. Now
according to Intel both controllers are compatible with versions of
Microsoft DirectX up to 9.0. I also know that the latest graphic drivers
are installed.

The problem though is that DirectX can't be initialized on those
computers: CreateDevice() returns D3DERR_NOTAVAILABLE. The code I use is:

dx9 = Direct3DCreate9(D3D_SDK_VERSION); // D3D_SDK_VERSION is 32
dx9->GetAdapterDisplayMode(D3DADAPTER_DEFAULT, &dispmode);
D3DPRESENT_PARAMETERS params;
ZeroMemory(&params, sizeof(params));
params.SwapEffect = D3DSWAPEFFECT_DISCARD;
params.Windowed = TRUE;
params.hDeviceWindow = hwnd;
dx9->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hwnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, &params, &device);

I got a DirectX Dialog file and the results of the DirectX Caps Viewer.
The first one clearly says: "Direct3D functionality not available. You
should verify that the driver is a final version from the hardware
manufacturer." DDraw status and D3D status are also said not to be
available. When I check the DirectX Caps Viewer I can see a reference
device type but no HAL. As I pass D3DDEVTYPE_HAL to CreateDevice() I'm not
surprised that it returns D3DERR_NOTAVAILABLE.

What I don't understand though is how to get DirectX to work? After all
Intel says that DirectX is supported. There also seem to be some games
working fine with the Intel Extreme Graphics controllers. Am I expected to
use the reference device type?

Boris

Chuck Walbourn [MSFT]

unread,
Jul 16, 2009, 1:39:01 PM7/16/09
to
Those specs are rather confusing. You are not likely to have two different
integrated video chipsets on your machine. I've seen a lot of HP specs that
list multiple conflicting hardware because they change between them
depending on the production run and current pricing. You either have an 845G
or an 865G. Neither is really a great Direct3D part, although the 865G is
generally better supported than the 845G.

Run DXDIAG and if it can't get Direct3D working, then the problem is
defintely driver-related. You'll need to go to Intel or HP for an udpated
driver.

Note that programming for those Intel Integrated Graphics parts is rather
finicky. You should get a copy of the Intel Graphics Media Accelerator
Developer's Guide
http://software.intel.com/en-us/articles/intel-graphics-media-accelerator-developers-guide/
for Intel's advice on dealing with them.

--
-Chuck Walbourn
SDE, XNA Developer Connection

This posting is provided "AS IS" with no warrenties, and confers no rights.

Boris Schaeling

unread,
Jul 16, 2009, 2:09:48 PM7/16/09
to
On Thu, 16 Jul 2009 19:39:01 +0200, Chuck Walbourn [MSFT]
<chu...@online.microsoft.com> wrote:

> Those specs are rather confusing. You are not likely to have two
> different integrated video chipsets on your machine. I've seen a lot of
> HP specs that list multiple conflicting hardware because they change
> between them depending on the production run and current pricing. You
> either have an 845G or an 865G. Neither is really a great Direct3D part,
> although the 865G is generally better supported than the 845G.

Sorry, I didn't make myself clear enough: The HP Compaq d510 has the 845G
and the HP Compaq d530 the 865G.

> Run DXDIAG and if it can't get Direct3D working, then the problem is
> defintely driver-related. You'll need to go to Intel or HP for an
> udpated driver.

Unfortunately the latest driver is installed: The driver offered on HP's
website is the same as the one offered by Intel (from September 2005).

> Note that programming for those Intel Integrated Graphics parts is
> rather finicky. You should get a copy of the Intel Graphics Media
> Accelerator Developer's Guide
> http://software.intel.com/en-us/articles/intel-graphics-media-accelerator-developers-guide/
> for Intel's advice on dealing with them.

Thanks, I'll have a look! As Intel says the controllers are
DirectX-compatible and as I've read that some people with these
controllers managed to start some games I thought I should be able to
create a device at least.

Boris

Boris Schaeling

unread,
Jul 16, 2009, 3:34:59 PM7/16/09
to
On Thu, 16 Jul 2009 19:39:01 +0200, Chuck Walbourn [MSFT]
<chu...@online.microsoft.com> wrote:

> [...]Note that programming for those Intel Integrated Graphics parts is

> rather finicky. You should get a copy of the Intel Graphics Media
> Accelerator Developer's Guide
> http://software.intel.com/en-us/articles/intel-graphics-media-accelerator-developers-guide/
> for Intel's advice on dealing with them.

I also found a developer's guide for 865G on Intel's website (at
http://cache-www.intel.com/cd/00/00/21/63/216313_216313.pdf). There is
even an appendix how to create a DirectX 9 device. However they pass the
very same parameters to CreateDevice() as I do.

What I still don't understand why DXDiag and DXCapsViewer say DirectX is
not available. DXCapsViewer also only finds a reference device but no HAL.
Can DirectX be deactivated? If it's not my code and the driver is
up-to-date where else could I look?

Boris

Fábio Gusmão

unread,
Jul 17, 2009, 10:47:50 PM7/17/09
to

Hi there.The DirectX SDK docs has this piece of code as example.


D3DPRESENT_PARAMETERS d3dpp;
ZeroMemory( &d3dpp, sizeof(d3dpp) );
d3dpp.Windowed = TRUE;
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

The final step is to use the IDirect3D9::CreateDevice method to create
the Direct3D device, as illustrated in the following code example.

if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice ) ) )

Notice it specifies BackBufferFormat, which I didn't see in your code.
Another thing to be aware of is those Intel GMA cards have very
obsolete specs and won't support anything better than Shader Model
2.0, raising Access violation exceptions on a bunch of DirectX 9.0c
targetted games, like Need for Speed Most Wanted and newer, Command
and Conquer Tiberium Wars runs with some tweaks and many other games
don't even start. I recommend you use the most oldschool stuff you
have if Intel's graphics crap is your target hardware :P

Boris Schaeling

unread,
Jul 18, 2009, 12:34:30 AM7/18/09
to
On Sat, 18 Jul 2009 04:47:50 +0200, Fᅵbio Gusmᅵo <fabio....@gmail.com>
wrote:

> [...]D3DPRESENT_PARAMETERS d3dpp;


> ZeroMemory( &d3dpp, sizeof(d3dpp) );
> d3dpp.Windowed = TRUE;
> d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
> d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;
>
> The final step is to use the IDirect3D9::CreateDevice method to create
> the Direct3D device, as illustrated in the following code example.
>
> if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,
> hWnd,
> D3DCREATE_SOFTWARE_VERTEXPROCESSING,
> &d3dpp, &g_pd3dDevice ) ) )
>
>
>
> Notice it specifies BackBufferFormat, which I didn't see in your code.

D3DFMT_UNKNOWN is 0 and doesn't need to be set explicitly (as ZeroMemory()
is used a few lines above).

> Another thing to be aware of is those Intel GMA cards have very
> obsolete specs and won't support anything better than Shader Model
> 2.0, raising Access violation exceptions on a bunch of DirectX 9.0c
> targetted games, like Need for Speed Most Wanted and newer, Command
> and Conquer Tiberium Wars runs with some tweaks and many other games
> don't even start. I recommend you use the most oldschool stuff you
> have if Intel's graphics crap is your target hardware :P

I wish I would get those exceptions as that's something I could try to
work around. There is not much I can do though if CreateDevice() fails. I
suspect that there is a BIOS or Windows setting which causes trouble here.
But as I don't have access to those HP computers I can only speculate. :-/

Boris

Sam Brown

unread,
Jul 18, 2009, 3:45:11 PM7/18/09
to
> I recommend you use the most oldschool stuff you
> have if Intel's graphics crap is your target hardware :P

We use the 845G on some custom boards at work, and I find DX7 gets
the best results - I think it's because T&L was still something of
a novelty when that came out. ;)

- SamB


Boris Schaeling

unread,
Jul 18, 2009, 3:55:51 PM7/18/09
to

Did you ever try to create a DX9 device? If it doesn't work on someone
else's computer with a 845G I stop looking for a solution.

Boris

Sam Brown

unread,
Jul 18, 2009, 4:06:33 PM7/18/09
to

"Boris Schaeling" <bo...@highscore.de> wrote in message
news:op.uw94bejjhcamje@bose...

> Did you ever try to create a DX9 device? If it doesn't work on someone
> else's computer with a 845G I stop looking for a solution.

I'm afraid not - the highest I went was DX8 (we were using W2K).

- SamB


Boris Schaeling

unread,
Jul 20, 2009, 10:37:27 AM7/20/09
to

Meanwhile I built the program in the appendix of Intel's developer's guide
for the 865G. The program tries to identify the chipset and creates a
DirectX 9 device. If this program from Intel doesn't work either the
problem must be somewhere else.

Boris

OFF@discussions.microsoft.com PISSED OFF

unread,
Sep 19, 2009, 4:11:01 PM9/19/09
to


"Boris Schaeling" wrote:

> Honestly, I own a dell(read dull) piece of crap with intel integrated extreme garbage graphics claiming to be 64mb but really is 61 mb result being half the stuff needed 64 mb cannot be handled by this pos its really the worse load of garbage I have ever owned or seen or even heard of the only good point with my optiplex gx260 is that the processor is not celeron but its really only half a notch above its my first and last dell ever I have never seen such garbage and even at the low price I got it for I still got badly ripped off, Im really sick of this ongoing sucker incident with pc Im going MAC from now on at least when they advertise theri specs , they actually deliver. So to answer your question, intel integrated garbage is garbage and half the drivers work halfass anyway so they cant even deliver the lower than advertised power it actually has because of constant stability issues, Matrox and Radeon usually do well enough, If I ever have to deal with another PC thats what
Im putting in but I really want to save for a MAC there is not a single PC that compares to even the average MAc and obviously not one that compares with the high end ones. The best PC might barely beat the crappiest MAC, by half a notch and then only if its not running vista pos supreme, the new worse os ever made , who ve thought they could do worse than ME lol.

0 new messages