Sign in to follow this  
Smarkus

DX12 [DirectX 12] Need help setting up a directx 12 project with visual studio 17

Recommended Posts

I think you should be looking to learn directx 11. Directx 12 does not bring anything new to the table, and in fact has *less* than directx 11 (by design). Directx 11 is going to be so much easier for you to set up and understand. I say this because it sounds like your new to directx and i'm just trying to save you some time

Share this post


Link to post
Share on other sites

I've actually already ordered this book:

https://www.amazon.com/Introduction-Programming-DirectX-Computer-Science/dp/1942270062

So, I was just trying to get my hands dirty and get ready to study the book. I mean I can't really switch now that I've already ordered the book. Also, I'm in Japan and some how the Amazon site here said that i'll get the book that I ordered the next day, whereas if I ordered the same book by the same author, just the DirectX 11 version, it'd take 2 to 3 months to ship. So I had no choice. But I'd appreciate if you told me some links or resources that explain how I set it up.

I think you should be looking to learn directx 11. Directx 12 does not bring anything new to the table, and in fact has *less* than directx 11 (by design). Directx 11 is going to be so much easier for you to set up and understand. I say this because it sounds like your new to directx and i'm just trying to save you some time

Share this post


Link to post
Share on other sites

Well, Microsoft does have the D3D12 documentation (https://msdn.microsoft.com/en-us/library/windows/desktop/dn899120(v=vs.85).aspx) which does have a run through ... though realistically I would probably wait for the book you ordered as it will likely be easier to follow.

Though I would agree on D3D12 being a bad choice for someone just starting out, its much lower level and a lot of the "automated" things in D3D11 have to be manually accounted for in D3D12. So you may feel like you are drowning with the huge amount you will be taking in to pick it up.

I would say the book you got is one I would recommend though, Frank Luna does usually do a good job of covering things (heh I learnt DirectX 9 years back through his old book, also have the DX12 one on my read list for sometime soon) 

Edited by GibbonThatCodes

Share this post


Link to post
Share on other sites

I was not a particularly big fan of this publication. I've bought all of his books since his 90C hit the shelves. My problem is from his DX11 book to his DX12 the whole thing felt hastily put together with D3D12 moreso appended to it, rather than a fresh re-write. (I think the editor even misses a few spots when changing references to D3D11 to 12 in some cliff notes O_o)

However, for someone who has never owned his previous books, I think you won't gripe as much as I did about it. Though I was quite disappointed that he didn't delve into multi-threaded design in the advanced section. He shoos it off as something you can study about on your own, which fair enough, but it felt kinda cheap.

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  

  • Partner Spotlight

  • Forum Statistics

    • Total Topics
      627636
    • Total Posts
      2978331
  • Similar Content

    • By Mr_Fox
      Hi Guys,
      Does anyone know how to grab a video frame on to DX texture easily just using Windows SDK? or just play video on DX texture easily without using 3rd party library?  I know during DX9 ages, there is a DirectShow library to use (though very hard to use). After a brief search, it seems most game dev settled down with Bink and leave all hobbyist dx programmer struggling....
      Having so much fun play with Metal video playback (super easy setup just with AVKit, and you can grab movie frame to your metal texture), I feel there must be a similar easy path for video playback on dx12 but I failed to find it.
      Maybe I missed something? Thanks in advance for anyone who could give me some path to follow
    • By _void_
      Hello guys,
      I have a texture of format DXGI_FORMAT_B8G8R8A8_UNORM_SRGB.
      Is there a way to create shader resource view for the texture so that I could read it as RGBA from the shader instead of reading it specifically as BGRA?
      I would like all the textures to be read as RGBA.
       
      Tx
    • By _void_
      Hello guys,
      I am wondering why D3D12 resource size has type UINT64 while resource view size is limited to UINT32.
      typedef struct D3D12_RESOURCE_DESC { … UINT64                   Width; … } D3D12_RESOURCE_DESC; Vertex buffer view can be described in UINT32 types.
      typedef struct D3D12_VERTEX_BUFFER_VIEW { D3D12_GPU_VIRTUAL_ADDRESS BufferLocation; UINT                      SizeInBytes; UINT                      StrideInBytes; } D3D12_VERTEX_BUFFER_VIEW; For the buffer we can specify offset for the first element as UINT64 but the buffer view should still be defined in UINT32 terms.
      typedef struct D3D12_BUFFER_SRV { UINT64                 FirstElement; UINT                   NumElements; UINT                   StructureByteStride; D3D12_BUFFER_SRV_FLAGS Flags; } D3D12_BUFFER_SRV; Does it really mean that we can create, for instance, structured buffer of floats having MAX_UNIT64 elements (MAX_UNIT64 * sizeof(float) in byte size) but are not be able to create shader resource view which will enclose it completely since we are limited by UINT range?
      Is there a specific reason for this? HLSL is restricted to UINT32 values. Calling function GetDimensions() on the resource of UINT64 size will not be able to produce valid values. I guess, it could be one of the reasons.
       
      Thanks!
    • By pcmaster
      Hello!
      Is it possible to mix ranges of samplers and ranges of SRVs and ranges of UAVs in one root parameter descriptor table? Like so:
      D3D12_DESCRIPTOR_RANGE ranges[3]; D3D12_ROOT_PARAMETER param; param.ParameterType = D3D12_ROOT_PARAMETER_TYPE_DESCRIPTOR_TABLE; param.DescriptorTable.NumDescriptorRanges = 3; param.DescriptorTable.pDescriptorRanges = ranges; range[0].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SRV; .. range[1].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_UAV; .. range[2].RangeType = D3D12_DESCRIPTOR_RANGE_TYPE_SAMPLER; .. I wonder especially about CopyDescriptors, that will need to copy a range of D3D12_DESCRIPTOR_HEAP_TYPE_SAMPLER and a range of D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV.
      Thanks if anyone knows (while I try it :))
      .P
    • By Infinisearch
      So I was reading the presentation Practical DirectX 12 - Programming Model and Hardware Capabilities again and finally decided to tackle proper command list submission.  Things mentioned in the document regarding this subject:
      Aim for (per-frame): ● 15-30 Command Lists ● 5-10 ‘ExecuteCommandLists’ calls
      Each ‘ ExecuteCommandLists’ has a fixed CPU overhead ● Underneath this call triggers a flush ● So batch up command lists
      Try to put at least 200μs of GPU work in each ‘ExecuteCommandLists’, preferably 500μs
      Small calls to ‘ExecuteCommandLists’ complete faster than the OS scheduler can submit new ones
      OS takes ~60μs to schedule upcoming work
      So basically I want to estimate how long my draw calls take.  Benchmarking for a particular piece of hardware seems impractical.  So given the stats primitive count, pixel count(approximately how many screen space pixels the call will be rendered to), and some precomputed metric associated with shader ALU complexity(like # of alu ops) do you think that I can get a reasonable estimation of how much time a draw call will take?
      What do you do to take this into account?
      What about other things like transitions?  I can only think of actual measurement in this case.
  • Popular Now