Questions tagged [directx12]

49 questions
23
votes
3 answers

Why is thread safety such a huge deal for Graphics APIs?

Both Vulkan and DirectX12 are claimed to be usable in a thread-safe manner. People seem to be excited about that. Why is this considered such a huge feature? The "real" processing gets thrown over the memory bridge on a separate processing unit…
ratchet freak
  • 5,830
  • 15
  • 27
13
votes
1 answer

How many Direct/Compute/Copy Queues are meaningful?

DirectX 12 exposes command queues for either graphics (called "Direct"), compute or copy tasks. In terms of provided functionality, each one is a super-set of the following one. The specification states that command queues can be executed…
Wumpf
  • 843
  • 7
  • 15
8
votes
2 answers

What's the main difference of pipeline process between Vulkan and DX12?

DX12 introduces a new feature of pipeline named 'Bundle'. It seems that can optimize the command list, and send it to final pipeline. Vulkan invent some different pipeline: The graphic pipeline and the compute pipeline. The graphic pipeline seems…
naive231
  • 189
  • 1
  • 3
8
votes
1 answer

DirectX12 CbvHeap

With directX12 they introduced heap descriptors. A way for us to describe the table for resources we wanted to send to the shaders. I'm admittedly very new at computer graphics and only tinkered a bit in directX11. I have not toyed with instancing…
Andrew Wilson
  • 828
  • 7
  • 14
6
votes
0 answers

How to account for self intersection with large ray tracing scenes?

I'm working on a hybrid real time ray tracing project and trying to tackle the problem of self-intersection with larger scenes due to loss of float accuracy. The logic I'm trying to use is based on Ray Tracing Gems chapter 6 with the code bellow…
6
votes
1 answer

How does DirectX 12 SLI VRAM stacking work?

Mainly talking about dual-SLI here for consistency. With past DirectX (and OpenGL) APIs, VRAM was mirrored across graphics cards. With dual-SLI, this was possible by rendering one frame with one graphics card and another frame with another one.…
aces
  • 1,343
  • 1
  • 11
  • 17
5
votes
1 answer

Dx12 Vertex Buffer incorrect

I'm playing around with directX 12 and I'm having some problems loading geometry in. I have a std::vector vertices definition and I do exactly what the dx12 template does with it. const UINT vertexBufferSize = sizeof(vertices); // Create the…
Andrew Wilson
  • 828
  • 7
  • 14
4
votes
1 answer

How much does driver quality affect Vulkan and DX12 compared to OpenGL and DX11?

Considering the fact that Vulkan and DX12 delegate most of the memory management / work scheduling tasks to the application itself, how much do drivers affect performance? To put my question into context, people on the internet talk a lot about…
mbl
  • 291
  • 1
  • 8
4
votes
2 answers

How does ID3D12Resource::Map work?

How does Map() work? I would guess that it allocates memory to fit the resource size (or a range of it), but when are the bytes sent to the GPU?
Derag
  • 596
  • 2
  • 11
4
votes
1 answer

DirectX 12 Constant Buffer Binding

I can't really seem to figure out how to bind two constant buffers to my shaders. I have them described like so. One in slot b0 and the other in slot b1. cbuffer WVPData : register(b0) { matrix model; matrix view; matrix…
Andrew Wilson
  • 828
  • 7
  • 14
3
votes
1 answer

Can D3D12 resource barriers be used to synchronize between the compute and 3D engine?

What is the best way to synchronize resource access between the (async) compute engine and the 3d engine (aka. direct engine) in D3D 12? I found this paragraph about multi-engine synchronization on MSDN but it's not very detailed. You can certainly…
George
  • 61
  • 4
3
votes
1 answer

What mechanisms are being used by Directx12 and Vulkan APIs in order to communicate with graphic card drivers internally?

I am trying and learning to develop a low level graphics API. I want to know, how do modern graphics APIs manage to communicate with graphic card drivers (to tackle GPU) so efficiently and in an optimized manner? Which technologies should I…
3
votes
1 answer

Hlsl - registers type

Is there any difference between registers types in hlsl? For example when using register t0 for UAV will it be somehow precache like textures? According to microsoft's presentation about resource in DX12 and hlsl 5.1 this registers mean nothing, but…
Derag
  • 596
  • 2
  • 11
3
votes
0 answers

What causes buffer access to be significantly slower in DXIL than SPIR-V?

I am currently experimenting with unbounded descriptor arrays and ultimately want to use bindless descriptors. I wrote a test application, that draws 100.000 simple object instances, where the transform for each object is pulled from a buffer…
Carsten
  • 131
  • 4
3
votes
2 answers

Using array of textures in DX12

I managed to create code, working correctly as Texture2DArray in hlsl by using single ID3D12Resource and binding it as D3D12_SRV_DIMENSION_TEXTURE2DARRAY with constant array size. std::pair, D3D12_SUBRESOURCE_DATA>…
1
2 3 4