Sign in to follow this  
ignore

commands in a command buffer perform concurrrently ?

Recommended Posts

https://www.youtube.com/watch?v=Bu581jeyTL0

 

the tutorial says that 

"Command buffer begin execution in the order they are submitted, the commands within the buffers also begin execution in the order they are submitted.
 That doesn't mean that the work submitted later in the same queue isn't allowed to begin execution before the previous command buffer have finished.
 Shemaphores make sure command buffer execution won't overlap, where neeeded"
 
this description is good.
i understand that command buffers are performed concurrrently.
then commands in a command buffer perform concurrrently ?

Share this post


Link to post
Share on other sites
APIs generally require GPUs to act as if the command sequence (and triangle sequences within a command!) are executed in strict order... But GPUs will do their best to perform as many commands (and triangles) in parallel as they can while still appearing as if they did them in order.
AMD has an extension where you can explicitly opt out of strict ordering guarantees to give them more room for parallelism: http://gpuopen.com/unlock-the-rasterizer-with-out-of-order-rasterization/

Share this post


Link to post
Share on other sites

command sequence are executed in order, but are performed in parallel. <- it's a pipeline architecture.

so if a command has a data dependency with other command, i should insert memory barrier between them to solve data hazard problem.

 

it's right ?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this