Skip to main content
gamedev.net
🔒 Locked

Multithreaded apps

Started by CastorX 3 replies 600+ views
Original Post
CastorX
CastorX
Hy! Is the D3DCREATE_MULTITHREADED option neccessary if I want to create a Multithreaded application?
Armadon
Armadon
Creating your device with the D3DCREATE_MULTITHREADED flag will just make sure that your device is multithreaded safe. You could create a multithreaded application without creating a device with this flag if you want.

What multithread safe means is that when you are concurrently utilizing the device in a multithreaded application that it will function correctly rather than going bonkers.

I hope this helps.
Take care.
remigius
remigius
Does this also apply to resources bound to the multithreaded/synchronized device? I've had some problems with generating a texture on a seperate thread and I was wondering whether or not this flag would solve my problem, with or without locking the texture for thread access.

I realize this is probably an application specific question, but any info is appreciated :)


Edited:

I guess not, since the Managed docs has the following to say about the MultiThreaded create flag:

Quote:
Indicates that the application requested multithread safety in Direct3D. This causes Direct3D to check its global critical section more frequently, which can degrade performance. Starting in the Microsoft DirectX 9.0 SDK Update (Summer 2003), this enumerated value is always specified unless the PresentParameters.ForceNoMultiThreadedFlag is set to true.


Any comments?
Muhammad Haggag
Muhammad Haggag
Quote:
Original post by remigius
Does this also apply to resources bound to the multithreaded/synchronized device? I've had some problems with generating a texture on a seperate thread and I was wondering whether or not this flag would solve my problem, with or without locking the texture for thread access.

I believe it applies to everything. Basically, don't access a resource from more than one thread at the same time.

remigius
remigius
I reached about the same conclusion through trial and error :)

So basically you really cannot access the device or any device bound resource (texture/buffer) from another thread and expect your application to work? I'm asking since some operations, like LoD adaptation, texture filling etc. might benefit from multithreading on dual core systems. On the other hand, these things seem to be shifting rapidly to the GPU, so I guess there's no real point to this.

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.