cancel
Showing results for 
Search instead for 
Did you mean: 

Devgurus Discussion

hodgman
Adept I

agsDriverExtensionsDX11_SetDepthBounds - how to specify which device context?

(sorry I didn't find a D3D sub-forum)

Hi, I've just started implementing the AGS driver extensions into our D3D11 back-end, and have run into one major road block. How do functions such as agsDriverExtensionsDX11_SetDepthBounds know which ID3D11DeviceContext they apply to? The first parameter of these functions is a AGSContext*, which is associated with a D3D11 device (all contexts!?). Do they apply to the immediate context, or to ​all contexts owned by that device?

Is it safe / possible to use the AMD driver extensions in an application that uses multiple device contexts? Are there thread-safety guarantees with these functions?

0 Likes
1 Solution

I got this answer on Git Hub

The DX11 driver extension functions will not work for deferred contexts (#4). I'll make sure to mention this in the documentation.

For the AMD driver, deferred contexts don't buy you any additional performance and we recommend against using them! You are much better off multi-threading your rendering and writing each thread's output to a software command buffer which gets processed by the immediate context on the main thread.

View solution in original post

0 Likes
2 Replies
hodgman
Adept I

I guess to be safe, I'll just disable multi-threading of gfx components if the user ticks the "Enable AMD Extensions" box?

0 Likes

I got this answer on Git Hub

The DX11 driver extension functions will not work for deferred contexts (#4). I'll make sure to mention this in the documentation.

For the AMD driver, deferred contexts don't buy you any additional performance and we recommend against using them! You are much better off multi-threading your rendering and writing each thread's output to a software command buffer which gets processed by the immediate context on the main thread.

0 Likes