Jump to content

  • Log In with Google      Sign In   
  • Create Account


Programs going way too slow since moving to a new computer...


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
7 replies to this topic

#1 stu_pidd_cow   Crossbones+   -  Reputation: 1674

Like
0Likes
Like

Posted 16 December 2013 - 08:25 PM

I recently moved over to using a new laptop and I have started a new project in visual studio 2012 but everything runs slower than it should. I tried profiling it with the VS profiler and it says that 99.38% of the time is spent in d3d11ref.dll. I have reinstalled the DirectX SDK. I tried an older project that worked fine on another computer and it was also running slow, so I don't think it has anything to do with my code. The laptop is quite good (i7 processor). The program I'm currently testing is just a basic game loop that opens up a blank window and does nothing to it. It does not interact with Direct3D (though D3D is included in the project, just no D3D code is run).

 

So is it the laptop or VS or have I setup D3D wrong or something else?

 

(I posted this in General Programming because I don't think it is a D3D-specific problem)

 

Thanks.


Edited by stu_pidd_cow, 16 December 2013 - 08:26 PM.


Sponsor:

#2 JTippetts   Moderators   -  Reputation: 8159

Like
4Likes
Like

Posted 16 December 2013 - 08:35 PM

Did you update to the latest GPU drivers?



#3 Bacterius   Crossbones+   -  Reputation: 8162

Like
5Likes
Like

Posted 16 December 2013 - 09:02 PM

d3d11ref.dll is the reference device implementation for the D3D11 runtime. No wonder it's running so slow, you're rendering in software (with the reference driver, no less).


The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#4 stu_pidd_cow   Crossbones+   -  Reputation: 1674

Like
0Likes
Like

Posted 16 December 2013 - 10:07 PM

I tried updating drivers but I still get the same result.

 

 

d3d11ref.dll is the reference device implementation for the D3D11 runtime. No wonder it's running so slow, you're rendering in software (with the reference driver, no less).

 

This would explain a lot. But how can I get it to use the hardware? I have run much more intensive games than this on the computer and they run fine, so I think it is safe to assume that hardware does work.



#5 Hodgman   Moderators   -  Reputation: 27677

Like
4Likes
Like

Posted 16 December 2013 - 10:27 PM

I'm guessing that it's just your own programs that are having this issue?

 

How do you create your D3D11 device?



#6 stu_pidd_cow   Crossbones+   -  Reputation: 1674

Like
1Likes
Like

Posted 16 December 2013 - 10:44 PM

 

I'm guessing that it's just your own programs that are having this issue?

 

Yeah, from what I can tell.

D3D_DRIVER_TYPE driverTypes[] =
{
	D3D_DRIVER_TYPE_HARDWARE,
	D3D_DRIVER_TYPE_REFERENCE,
};
unsigned int numDriverTypes = sizeof( driverTypes ) / sizeof( driverTypes[0] );

for( unsigned int driverTypeIndex = 0; driverTypeIndex < numDriverTypes; driverTypeIndex++ )
{
	D3D_DRIVER_TYPE D3DDriverType = driverTypes[driverTypeIndex];
	D3D_FEATURE_LEVEL level[] = { D3D_FEATURE_LEVEL_11_0 };
	hr = D3D11CreateDevice( NULL, D3DDriverType, NULL, createDeviceFlags, level, 1, D3D11_SDK_VERSION, &D3DDevice, NULL, &D3DContext );
	if( SUCCEEDED( hr ) )
		break;
}

So it seems D3D11CreateDevice fails when trying to use D3D_DRIVER_TYPE_HARDWARE but works with D3D_DRIVER_TYPE_REFERENCE. Not sure why though.


Edited by stu_pidd_cow, 16 December 2013 - 10:45 PM.


#7 Hodgman   Moderators   -  Reputation: 27677

Like
4Likes
Like

Posted 16 December 2013 - 11:23 PM

I would guess that your laptop's GPU does not support D3D_FEATURE_LEVEL_11_0 -- i.e. it's only got a D3D10 level GPU.



#8 stu_pidd_cow   Crossbones+   -  Reputation: 1674

Like
0Likes
Like

Posted 16 December 2013 - 11:36 PM

Ahhhh that's it. Seems to work fine with feature level 10. Thanks a bunch!






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS