Jump to content

  • Log In with Google      Sign In   
  • Create Account


Member Since 28 Jul 1999
Offline Last Active Yesterday, 04:52 PM

Posts I've Made

In Topic: [D3D12] Root Signature Reflection

14 October 2016 - 10:15 AM

The function returns E_INVALIDARG.  I'm trying to call this with a compiled shader (ie the resulting blob from D3DCompileFromFile).  I'm not specifying the RootSignature in the HLSL directly, I'm creating it in the C++ code and passing it to the pipeline state.


Seeing as misaligning the root signature on purpose causes an error telling me I'm binding the wrong descriptor table type (for example), it seems like the implicit root signature in the compiled shader is known.  How do I get it via reflection?

In Topic: Per-Pixel eye vectors for fullscreen quad

06 July 2016 - 12:07 AM

That behaves much more like i'd expect.  Thanks!

In Topic: [D3D12] Ping Pong Rendering

16 May 2016 - 02:57 PM

Huh.  So then what is the difference between a GroupMemoryBarrier and a DeviceMemoryBarrier?  The latter talks about blocking for "device memory accesses", which I took to mean things like RWStructuredBuffers, RWTexture2Ds, etc.

In Topic: [D3D12] Ping Pong Rendering

16 May 2016 - 11:04 AM

I put together a pretty basic set up (three passes, one that writes red, one that writes green, and a blue) and verified that ping-ponging back and forth with the PS method works properly.  I've got something else going on in my original approach that's messing me up.


I'm still wondering why the CS method doesn't work though.  If I have a RWStructuredBuffer that contains all my texture data, and my various threadgroups are sampling from that buffer, shouldn't a call to DeviceMemoryBarrierWithGroupSync sync all the thread groups after writing to the "other" buffer, such that the next iteration of the loop will have a completely filled out buffer as its source data?

In Topic: [D3D12] Compute Shader copy from RWStructuredBuffer to RWTexture2D?

15 May 2016 - 04:25 PM

Well damn if that wasn't the exact right question to ask.  Yes one dispatch, but while looking at it I realized I was calling Dispatch(32, 32, 1), and my CS was declared with [numthreads(16, 16, 1)].  My texture is 256x256 but that would result in a 512x512.  I scaled it back to Dispatch(16, 16, 1) and it works as expected.

Thanks Adam.