cancel
Showing results for 
Search instead for 
Did you mean: 

Archives Discussions

ronan_bel
Adept I

Compute shader issue in current D3D driver

Hi, there is a bug in the current driver (present from 15.5 beta driver)

(short)

If you code a sequence of 3 ComputeShader using one resource as UAV then UAV then SRV

CS1 ( rsc @ slotN as UAV )    // rsc used as WriteOnly

CS2 ( rsc @ slotN as UAV )    // rsc used as Read then Write

CS3 ( rsc @ slotK as SRV )    // rsc used as ReadOnly (SRV)

it seems the driver doesn't insert a proper sync between CS1 and CS2 (and a proper sync between CS2 and CS3)

I can't send you a repro (confidental big engine with huge dataset)

I can add more detail by email (ronan.bel@ubisoft.com)

(long)

My dev PC has an NVidia GPU.

I was working on some GPU code running fine with this kind of GPU.

The same code was giving random results on PC with AMD GPU, even causing the driver to reset (win7,win8.1) or simply to hang (win10)

I tried to find a bug in my code (believing it was due to the 32/64 threads difference between warp & wavefront)

The code was running fine on a PC with 14.12 AMD driver. I checked with later drivers, the bug appeared with 15.5 beta driver.

Today (after 2 weeks banging me head against the walls), I reproduced this issue on a PS4, and figured out what was wrong using Razor.

We were inserting sync only for rsc state transitions, in this case, since the rsc was UAV (RW) then UAV (RW), we missed a sync.

And I believe it's also the case in current driver (from 15.5).

(hazard and state transition are listed page 77 of Mantle documentation)

Changing my code using 2 buffers (same size, same flags) solves the issue (it's not a solution, only a hack)

CS1 ( rsc1 @ slotN as UAV )

CS2 ( rsc2 @ slotN as UAV + rsc1 @ slotT as SRV )

CS2 ( rsc2 @ slotK as SRV )

(by the way, I wasn't able to post in dev forum, in the past I was able to post in CodeXL forum)

0 Likes
1 Reply
pinform
Staff

Hi Ronan,

Welcome and thanks for posting.

The move to the Jive platform for the community necessitates all new threads to be moderated once. I am white-listing you now -- post that, you should be able to directly post in any developer forum without moderation. I am also moving this post to the relevant dev forum -- where the experts should respond.

--Prasad

0 Likes