• Advertisement


  • Content count

  • Joined

  • Last visited

Community Reputation

2236 Excellent

1 Follower

About SoldierOfLight

Personal Information

  • Interests
  1. D3D11, IDXGISwapChain and fullscreen

    I don't really know how to rationalize the symptoms you're talking about. Pressing alt+tab should cleanly exit fullscreen, and restore your window styles and position. The only reason I can think why it wouldn't do that is if you intercepted some of those window changes.
  2. D3D11, IDXGISwapChain and fullscreen

    What OS are you looking at? Does your WndProc do anything special or interesting?
  3. DX11 Direct2d/directwrite with DX11

    D2D works with D3D10 or D3D11 on Windows 8, or the Platform Update for Windows 7 (KB2670838). All of the D2D interfaces take IDXGI* interfaces, which can be retrieved from either D3D10 or 11.
  4. DX12 DirectX 12 Render to Stencil Heap

    Heap aliasing doesn't allow for data inheritance between multiple placed resources, only for memory re-use. If you need your data to be in a stencil buffer, you'll need to figure out a way to write it as stencil.
  5. I don't entirely understand... why can't you include timestamp issuing in your pre-recorded command lists? What's the problem with reading back the results?
  6. DX12 GetCPUDescriptorHandleForHeapStart()

    Calling it twice on the same heap returns the same value. Calling it from run to run or on different heaps returns different values.
  7. ID3D11Device and ID3D11DeviceContext

    I'm not aware of usage in a shipped engine, but there was a pretty cool demo a while back: https://blogs.msdn.microsoft.com/directx/2015/04/30/directx-12-multiadapter-lighting-up-dormant-silicon-and-making-it-work-for-you/
  8. ID3D11Device and ID3D11DeviceContext

    Your terminology seems to be coming from the D3D9 days, where a D3D9 adapter corresponded to a "display adapter." These days I'd consider a DXGI adapter and D3D11 device to correspond to a "render subsystem" rather than a "display subsystem." But that might just be nitpicking. In D3D11, you're going to have a hard time using multiple adapters at the same time. Anything produced by a given GPU either needs to be presented by that GPU or funnelled back to the CPU, there's no way (at the moment at least) to marshal it directly to another GPU for processing. In D3D12 on the other hand, cross-adapter resources are available, so you can actually use multiple GPUs in concert.
  9. DX11 WARP vs UAVs in PS

    Note that Windows 7 likely won't get any updates for WARP at this point. I do seem to recall an issue with UAV-only draw calls not working correctly. Are you able to try your app on a more recent OS's version of WARP?
  10. DX11 Asynchronous Texture Creation DX11

    D3D11_CREATE_DEVICE_SINGLETHREADED removes the device's thread-safety. You cannot use a singlethreaded device from multiple threads without manually locking it.
  11. If you're running on Windows, I'm pretty sure the answer isn't a number of iterations, but a time. You can't have work executing for more than 2 seconds in a single command buffer.
  12. You'd need to create a swapchain on the corresponding HWND and Present() to copy the bits, or create a GDI_COMPATIBLE surface and use the IDXGISurface1::GetDC/ReleaseDC methods to get a second DC, and use GDI to do the copy.
  13. DX11 D3D11_CPU_ACCESS_READ and default usage

    Looks like you're accidentally using the MapOnDefaultBuffers feature: https://msdn.microsoft.com/en-us/library/windows/desktop/dn280377(v=vs.85).aspx MapOnDefaultBuffers Type: BOOL Specifies support for creating ID3D11Buffer resources that can be passed to the ID3D11DeviceContext::Map and ID3D11DeviceContext::Unmap methods. This means that the CPUAccessFlags member of the D3D11_BUFFER_DESC structure may be set with the desired D3D11_CPU_ACCESS_FLAG elements when the Usage member of D3D11_BUFFER_DESC is set to D3D11_USAGE_DEFAULT. The runtime sets this member to TRUE if the hardware is capable of at least D3D_FEATURE_LEVEL_11_0 and the graphics device driver supports mappable default buffers.
  14. Which API to learn first

    D3D12 and Vulkan are there for the graphics experts to be able to get the most out of their hardware. They're not for hobbyists who want to write a toy engine in their spare time. D3D11 and GL are still there for that. Metal, in my opinion, is somewhere in the middle between the two extremes, being lower level than GL, but higher than Vulkan. Of course, if your goal is to understand how a graphics driver works and how the full graphics stack works, from CPU to GPU, then by all means go for D3D12 or Vulkan.
  15. DX12 Overlay in DX12?

    System.Drawing.Graphics is GDI, which cannot interop in that way with swapchains of type DXGI_SWAP_EFFECT_FLIP_[SEQUENTIAL/DISCARD], which are required for D3D12.
  • Advertisement