Direct3D feature levels discussion

Discussion in 'Rendering Technology and APIs' started by DmitryKo, Feb 20, 2015.

  1. Novum

    Regular

    Joined:
    Jun 28, 2006
    Messages:
    335
    Likes Received:
    8
    Location:
    Germany
    From a hardware perspective I never thought it made much sense that UAV read/writes should only be possible in the pixel shader. It all executes on the same compute units.

    But obviously there must have been a reason from at least one IHV to not allow it. My guess would be Intel.
     
  2. Alessio1989

    Regular

    Joined:
    Jun 6, 2015
    Messages:
    614
    Likes Received:
    321
    It would be interesting to know if the NDA version of NVAPI exposes UAV capabilities for D3D11.x API family. What is for sure is that Geforce do not support TIR before Maxwell 2.0. If it was a "political" choice or an API design/implementation issue to not expose UAV caps on D3D11.x only Microsoft knows :D

    Please, tell me moar D:
     
  3. Andrew Lauritzen

    Andrew Lauritzen Moderator
    Moderator Veteran

    Joined:
    May 21, 2004
    Messages:
    2,632
    Likes Received:
    1,249
    Location:
    British Columbia, Canada
    Unrelated to this specific feature, but there are restrictions in Tier 1/Tier 2 that do not correspond to anything from hardware that I know of from the "main three" desktop GPU vendors. Speculate away :)

    I could be wrong/forgetting some obscure hardware of course, but that's less fun to talk about. :)

    Why would you think it was Intel? Check the hardware docs - IIRC there are basically no restrictions around UAVs really - the write path for UAVs (data port) is quite separate from the ROP path so there's no esoteric restrictions on shader stages or counts, etc. Our current restrictions are more related to format conversions (i.e. typed UAVs) in that path since - as noted - it is separate from the ROP hardware.

    GCN obviously doesn't have any issues here either, so my guess is NVIDIA on most UAV count/stage-related restrictions.

    In any case there are non-hardware reasons for not having UAV accesses at other stages, namely it starts to expose implementation-specific side effects (ex. post transform vertex cache) and in the presence of that, there haven't been any "killer applications" for UAVs at other stages, other than debuggers which could already do it at all stages via driver paths IIRC. It's possible that they simply didn't expose it for API cost/benefit reasons.
     
    #463 Andrew Lauritzen, Jul 13, 2015
    Last edited: Jul 13, 2015
    homerdog likes this.
  4. willardjuice

    willardjuice super willyjuice
    Moderator Veteran Alpha

    Joined:
    May 14, 2005
    Messages:
    1,386
    Likes Received:
    299
    Location:
    NY
    No respect for qualcomm...
     
  5. Ryan Smith

    Regular

    Joined:
    Mar 26, 2010
    Messages:
    629
    Likes Received:
    1,131
    Location:
    PCIe x16_1
    TheAlSpark likes this.
  6. pjbliverpool

    pjbliverpool B3D Scallywag
    Legend

    Joined:
    May 8, 2005
    Messages:
    9,237
    Likes Received:
    4,260
    Location:
    Guess...
    I see 5 lights.
     
  7. Alessio1989

    Regular

    Joined:
    Jun 6, 2015
    Messages:
    614
    Likes Received:
    321
    Everyone always forget power-vr and ARM ) :
     
  8. Ryan Smith

    Regular

    Joined:
    Mar 26, 2010
    Messages:
    629
    Likes Received:
    1,131
    Location:
    PCIe x16_1
    At least for the moment they aren't in any Windows devices. The only Windows ARM devices have been NVIDIA and Qualcomm powered, hence Qualcomm as the fourth Musketeer.
     
  9. Alessio1989

    Regular

    Joined:
    Jun 6, 2015
    Messages:
    614
    Likes Received:
    321
    Yes, actually they are not in the consumer market.. But I can guess they are at least interested to DX12 too, at least ARM (and don't forget about VIA, it is still not dead xD ). Plus, there is still a Windows NT family for embedded and industrial systems running both ARM and x86..
    It would be interesting to know what is Qualcomm doing. Actually it does not have any DX12 capable system on the market as far I know, moreover they have a VLIW architecture inherited from the ex-ATI/AMD mobile division, and I don't even know if Adreno supports virtual memory...
     
  10. Ryan Smith

    Regular

    Joined:
    Mar 26, 2010
    Messages:
    629
    Likes Received:
    1,131
    Location:
    PCIe x16_1
    Adreno 400 probably isn't DX12 capable. But Adreno 500 certainly will be.
     
  11. sebbbi

    Veteran

    Joined:
    Nov 14, 2007
    Messages:
    2,924
    Likes Received:
    5,296
    Location:
    Helsinki, Finland
    Intel GMA 500, 600, 3600 and 3650 were PowerVR based and were used with x86 ATOM CPUs. Desktop Windows (and desktop DirectX) was used with these.
     
    #471 sebbbi, Jul 14, 2015
    Last edited: Jul 14, 2015
  12. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    967
    Likes Received:
    1,223
    Location:
    55°38′33″ N, 37°28′37″ E
    Since when Qualcomm is a desktop GPU vendor? Despite being a "partner" in the Direct3D 12 announcement, they didn't announce any Direct3D 12 compatible product for the mobile even though a full year has passed, and their current products don't seem to support Direct3D 12 on Windows 10 Mobile. Other mobile GPU vendors did not announce any support for Direct3D 12 either. So right now "there are only three of them" in terms of Direct3D 12 support.
     
    #472 DmitryKo, Jul 14, 2015
    Last edited: Jul 14, 2015
  13. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    967
    Likes Received:
    1,223
    Location:
    55°38′33″ N, 37°28′37″ E
    Again, using UAVs across pipeline stages other than PS/CS is not allowed in Direct3D 11.1 on hardware with only 8 UAV "slots", but it's seems perfectly possible on the same hardware in Direct3D 12.

    So it's just Microsoft defining these two features - 64 "slots" and UAV slots shared across all pipeline stages - as mandatory on feature level 11_1 only, and not bothering to bring them downlevel as optional features on level 11_0.

    https://msdn.microsoft.com/en-us/li...v=vs.85).aspx#support_a_larger_number_of_uavs
    https://msdn.microsoft.com/en-us/li...=vs.85).aspx#use_uavs_at_every_pipeline_stage

    No. If you look up Direct3D 12 GPUs that were officially supported at the time of Windows 10 beta and correspond to resource binding Tier 1, Tier 2 and Tier 3, that would be Haswell/Broadwell, Kepler/Maxwell, and GCN.

    Maybe so, however Nvidia's PR was not being clear enough on UAV support - in Direct3D 11, Kepler/Maxwell do support UAV sharing across PS and CS stages, since it's a baseline feature of Direct3D 11.0 and feature level 11_0.

    https://msdn.microsoft.com/en-us/library/windows/desktop/ff476900(v=vs.85).aspx#Views
    https://msdn.microsoft.com/en-us/library/windows/desktop/ff476335(v=vs.85).aspx

    And judging by Direct3D 12 capabilities, they probably also support the additional stages (VS/GS/DS/HS) and increased UAV slot count, but cannot expose these features in Direct3D 11.x since they miss other minor requirements for Direct3D 11.1 feature level 11_1.
     
  14. willardjuice

    willardjuice super willyjuice
    Moderator Veteran Alpha

    Joined:
    May 14, 2005
    Messages:
    1,386
    Likes Received:
    299
    Location:
    NY
    Adreno 4xx is 11_1 and qualcomm is used in all windows phones. Guess what the next windows phone will have (with D3D12 support too I bet)?
     
  15. Ryan Smith

    Regular

    Joined:
    Mar 26, 2010
    Messages:
    629
    Likes Received:
    1,131
    Location:
    PCIe x16_1
    They're not a desktop GPU vendor of course. The only point I'm making is that they are important enough to MS that they got a seat at the big kids table, as it were. So there may be a quirk or two in DirectX 12 and its feature levels that are designed to accommodate Qualcomm.
     
  16. Alessio1989

    Regular

    Joined:
    Jun 6, 2015
    Messages:
    614
    Likes Received:
    321
    Are we sure that Adreno 400 Series supports tiled resources and virtual memory? Anyway, WP10 is expected AFTER Windows 10 for PC RTM, so some modification can still occur for mobile hardware (maybe some less hardware and shader features to reduce mobile GPU complexity and power requirements).
     
  17. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    967
    Likes Received:
    1,223
    Location:
    55°38′33″ N, 37°28′37″ E
    It's hard to tell what was the original plan - did they plan to support existing 9_x/11_x mobile hardware with the WDDM 2.0 GPMMU model, or just introduce a new mobile GPU generation by 2016? For now, Direct3D 12 exists on the desktop only.

    Adreno 400 series have to support virtual memory because they do not have their own dedicated VRAM.

    I just don't know, the launch of Windows 10 Mobile is only two months away and the outlook is not any clearer than it was five months ago - more than that, any talk about Direct3D 12 on the mobile has simply stopped.
     
  18. willardjuice

    willardjuice super willyjuice
    Moderator Veteran Alpha

    Joined:
    May 14, 2005
    Messages:
    1,386
    Likes Received:
    299
    Location:
    NY
    Well they claim to support "feature level 11_2" which I assume their marketing got confused and meant 11_1 with tiled resources (http://www.anandtech.com/show/8035/qualcomm-snapdragon-805-performance-preview). Perhaps Ryan could get some verification from qualcomm/ms whether or not they foresee adreno 4xx having DX12 drivers.

    I'd be shocked if WP10 didn't have DX12 sooner rather than later (tbh I'd be a little shocked if it wasn't at launch). Although my personal experience with qualcomm and drivers have not been good so who knows.
     
  19. sebbbi

    Veteran

    Joined:
    Nov 14, 2007
    Messages:
    2,924
    Likes Received:
    5,296
    Location:
    Helsinki, Finland
    It would have been a stupid move not to involve all the GPU manufacturers for the API design from the beginning. Mobile is more important than desktop nowadays. It doesn't matter that only a few mobile companies have DX12 mobile GPUs in the retail market right now, since DX12 itself is not even out yet. New generation of mobile GPUs will be released for the holiday season market flagship phones. And I am sure that the mobile GPU vendors have already started the hardware design of their next generation as well. It would benefit Microsoft to ensure that as many as possible support DX12.
    It's not a hard requirement. For example last gen consoles had unified memory systems, with CPU virtual memory only. GPUs used pure physical memory adresses.
     
  20. DmitryKo

    Regular

    Joined:
    Feb 26, 2002
    Messages:
    967
    Likes Received:
    1,223
    Location:
    55°38′33″ N, 37°28′37″ E
    I wouldn't really read too much into this slide and assume some "hidden" functionality beyond what is explicitly claimed by Qualcomm, leave some room for human mistakes.

    It could happen like this. Qualcomm PR just asked the hardware designers if Adreno 400 series support DirectX 11.2 (i.e. Direct3D 11.2 runtime in Windows 8.1), and they said they do - simply because Direct3D 11.2 supports anything from WDDM 1.0 (FL 9_3 to 10.1) to WDDM 1.1/1.2 (FL 11_0 and 11_1) to WDDM 1.3 (FL 11_1 with more options).
    Then someone thought it would be "cool" to also include the supported feature level, but made a wrong assumption that Direct3D 11.2 comes with a new feature level 11_2 - because naturally every prior revision of Direct3D did come with a new feature level.


    Currently it rather looks like "later" for Windows 10 Mobile, and probably "much later" than the assumed Holiday 2015 availability for the desktop.
     
    #480 DmitryKo, Jul 16, 2015
    Last edited: Jul 16, 2015
Loading...

Share This Page

  • About Us

    Beyond3D has been around for over a decade and prides itself on being the best place on the web for in-depth, technically-driven discussion and analysis of 3D graphics hardware. If you love pixels and transistors, you've come to the right place!

    Beyond3D is proudly published by GPU Tools Ltd.
Loading...