Maintenance for the week of September 8:
• PC/Mac: No maintenance – September 8
• PC/Mac: EU megaserver for maintenance – September 9, 22:00 UTC (6:00PM EDT) - September 10, 16:00 UTC (12:00PM EDT) https://forums.elderscrollsonline.com/en/discussion/682784

ESO DirectX 11 easy fix so dont lose a HUGE percentage of users and dont have to remove any graphics

timlongsonb16_ESO
A laymen’s guide to DirectX for software engineers - which apparently the software engineers for Elder Scrolls Online (ESO) need to read as they aren’t using it correctly in the latest patch: http://bell0bytes.eu/direct-x-com/

Each version of DirectX contains more available features than the previous - for example, new features in DirectX 11 (not present in previous versions) included: Compute Shader, Dynamic Shader Linkingm, Multithreading, Tessellation, and a few others.

DirectX - the way it is SUPPOSED to work: DirectX is a wonderful software tool for game developers. It has a critical CORE feature which, when used correctly, allows the same games to run at higher settings on more powerful (and up-to-date) computers, but still be playable on lower settings on older machines. It does this by using something call HAL (Hardware Abstraction Layer - also sometimes thought of as the Hardware Acceleration Layer) and HEL (Hardware Emulation Layer). The HAL uses the hardware on the graphics card, the HEL uses the computers CPU to emulate missing graphics hardware. So long as most of the graphics computations are handled by the graphics card, the CPU can be employed to step in and handle the small number of exceptions for future technology.

Graphics cards have dedicated hardware to run these game features, and the people who coded a computer game can make use of these hardware features by calling the HAL. HOWEVER, and this is where ESO developers have currently failed in the latest patch: If the call for the HAL to run a directX 11 feature returns that that particular feature is not present in HARDWARE, then there should be a line of code which then calls the HEL to fill in the gaps - the Hardware Emulation Layer then uses software, and the power of your CPU (rather than graphics card hardware) to emulate the missing features and adds them to the game seamlessly. The HEL will hence fill the gaps for just the very few extra features which are not hardware supported on the graphics card, and so long as the CPU isn't terrible, this should we be seamless, and the game will play as designed. In this way, the game developers are in no way stopped from using and new graphical features in DirectX 11 or even DirectX 12, and do not need to compromise - simply call HAL for any features they want to use, and HEL for any features not present on the users graphics card.

As to ESO in the latest patches - the game in its entirety can be forced to play ENTIRELY using HEL (independently of whatever the graphics card is), I have already tested this using the dxcpl DirectX tool, so this PROVES that the game can work regardless of what graphics card is being used. But this is neither sensible or feasible - the VAST majority of the graphical requirements CAN be run on a graphics card which supports the vast majority of the graphical feature calls via HAL, and if the code for ESO is written well (so that when it makes a HAL call for DirectX 11 features, if the feature is missing, it just runs HEL for those features, rather than crashing and throwing a "required feature missing" and forcing the game to exit) then ESO will NOT have lose a HUGE number of its users, as the game will run on machines which, for example, support DirectX hardware and use DirectX software.

A Simple website explaining the difference between HEL and Hal is:
http://bell0bytes.eu/direct-x-com/

There are LOADS of websites telling you how to check graphics card hardware and use HAL for hardware available, and ONLY use HEL for specifically missing directX 11 hardware support for functions you want to run in the game, so that the game still runs well. A website giving an example is:

https://books.google.co.uk/books?id=lRUj-nhQRu8C&pg=PA383&lpg=PA383&dq=how+to+use+HEL+if+call+for+HAL+fails+in+DirectX&source=bl&ots=7xEe1GK17A&sig=5yb13QuCOvpH4iy9Czq5HZwrMLk&hl=en&sa=X&ved=0ahUKEwiNhfje4O_LAhXDtBQKHcwXBLAQ6AEIHjAA#v=onepage&q=how to use HEL if call for HAL fails in DirectX&f=false

Can you please now implement ESO patch now, so when it makes a HAL call for the directX 11 specific features at login, instead of just crashing out and telling people "your graphics card isnt good enough", essentially "banning" them from playing the game, instead use the returned fail of HAL call to call HEL for those missing features so people with DirectX 10 cards, etc. can actually play! There is no need for compromise - you dont have to remove any game features or updates, just add some code to use HEL for missing hardware! Simple! :)

Happy to answer any questions on this.
Kind regards
Dr. Tim Longson PhD
  • Phinix1
    Phinix1
    ✭✭✭✭✭
    ✭✭✭✭✭
    Maybe NVIDIA/AMD paid them to do it that way to help them sell more new graphics cards.
  • phillyboy7897
    phillyboy7897
    ✭✭✭✭
    Sad state of affairs that the customer must attempt to help the business fix it's product, while also probably being ignored.

    Hope they listen to u man, I have no idea what the hell u are talking about lol.
  • Zakor
    Zakor
    ✭✭✭
    HOWEVER, and this is where ESO developers have currently failed in the latest patch: If the call for the HAL to run a directX 11 feature returns that that particular feature is not present in HARDWARE, then there should be a line of code which then calls the HEL to fill in the gaps - the Hardware Emulation Layer then uses software, and the power of your CPU (rather than graphics card hardware) to emulate the missing features and adds them to the game seamlessly. The HEL will hence fill the gaps for just the very few extra features which are not hardware supported on the graphics card, and so long as the CPU isn't terrible, this should we be seamless, and the game will play as designed.

    I have to admit that i haven't read further than the quote above. I think it would be a horrible idea to add CPU intensity to a game that is already completly CPU-bottlenecked. And I think thats the real reason why they have decided to do so.
    Anyway, DirectX 11 is from 2009! That are 7 years people had time to upgrade and even today a card that runs DirectX 11 isn't that expensive (you can get the first ones below 100€).
  • Leandor
    Leandor
    ✭✭✭✭✭
    ✭✭
    I have to agree with @Zakor on this. Game is CPU choked anyways so adding more to it even with medium or low settings will only worsen the situation.

    You may be able to run it but forget about pvp or trials.
  • jamesharv2005ub17_ESO
    jamesharv2005ub17_ESO
    ✭✭✭✭✭
    ✭✭✭
    Im not a programmer but that guy rich lambert mentioned there was some kind of "hard cap" they were up against if they left dx9/10 access in the game. I dont know what he meant by that maybe someone else can explain.
  • timlongsonb16_ESO
    Leandor wrote: »
    I have to agree with @Zakor on this. Game is CPU choked anyways so adding more to it even with medium or low settings will only worsen the situation.

    You may be able to run it but forget about pvp or trials.


    You are missing the point my friend - it is ONLY the VERY few specific DirectX 11 functions which will run on the CPU, and even then ONLY if there isnt a graphics card with DirectX 11 hardware support.

    To people with a DirectX 11 graphics card, this change will make ZERO difference, it will still all be done on the card.

    To people with, for example, DirectX 10 graphics cards, ONLY the few minor extra DirectX 11 effects will be run on the CPU - yes, this may cause the game play so slow down very slightly, so it may be an idea to turn off some of the optional effects if you are running a slow machine, BUT, it WILL mean that all the thousands and thousands of people who are currently locked out the game will be able to play again.

    To the game developers - it will NOT hold the game back, it will not restrict what effects they want to use, all it will be means is telling their software engineers to use the DirectX API coding PROPERLY, like they should have in the first place, so that HAL is use for everything possible, and anything not covered in hardware is then passed to HEL for emulation. The resulting overhead on the CPU is then the USERS decision to make! There are people, especially on laptops, who have very basic graphics cards, but TOP END CPUs and lots of RAM, etc..
  • Ra'Shtar
    Ra'Shtar
    ✭✭✭✭✭
    I don't know what ''HUGE'' percentage you are talking about because DriectX 11 is quite old and people who have PCs that don't support DX11 need to upgrade like right now.
    Some of my favorite screenshots
    My opinions and posts are mostly on a PvE setting.
  • sekou_trayvond
    sekou_trayvond
    ✭✭✭✭✭
    This post got me like the monkey

    tumblr_o478dyEBf61tsrxkpo1_500.gif
  • Ra'Shtar
    Ra'Shtar
    ✭✭✭✭✭
    Leandor wrote: »
    I have to agree with @Zakor on this. Game is CPU choked anyways so adding more to it even with medium or low settings will only worsen the situation.

    You may be able to run it but forget about pvp or trials.


    You are missing the point my friend - it is ONLY the VERY few specific DirectX 11 functions which will run on the CPU, and even then ONLY if there isnt a graphics card with DirectX 11 hardware support.

    To people with a DirectX 11 graphics card, this change will make ZERO difference, it will still all be done on the card.

    To people with, for example, DirectX 10 graphics cards, ONLY the few minor extra DirectX 11 effects will be run on the CPU - yes, this may cause the game play so slow down very slightly, so it may be an idea to turn off some of the optional effects if you are running a slow machine, BUT, it WILL mean that all the thousands and thousands of people who are currently locked out the game will be able to play again.

    To the game developers - it will NOT hold the game back, it will not restrict what effects they want to use, all it will be means is telling their software engineers to use the DirectX API coding PROPERLY, like they should have in the first place, so that HAL is use for everything possible, and anything not covered in hardware is then passed to HEL for emulation. The resulting overhead on the CPU is then the USERS decision to make! There are people, especially on laptops, who have very basic graphics cards, but TOP END CPUs and lots of RAM, etc..

    I don't agree that the game should cause more load on the CPU just so a few cheap people can play the game, the game need to have more load on the GPU not the contrary having more load on the GPU will cause improvement on the responsiveness due to more free CPU for heavy load situations.
    Edited by Ra'Shtar on April 2, 2016 1:13PM
    Some of my favorite screenshots
    My opinions and posts are mostly on a PvE setting.
  • timlongsonb16_ESO
    Ra'Shtar wrote: »
    Leandor wrote: »
    I have to agree with @Zakor on this. Game is CPU choked anyways so adding more to it even with medium or low settings will only worsen the situation.

    I don't agree that the game should cause more load on the CPU just so a few cheap people can play the game, the game need to have more load on the GPU not the contrary having more load on the GPU will cause improvement on the responsiveness due to more free CPU for heavy load situations.

    Ra'Shtar READ WHAT I SAID:
    "To people with a DirectX 11 graphics card, this change will make ZERO difference, it will still all be done on the card."

    So, Ra'Shtar, if you have a DirectX 11 graphics card, and can currently play the game the update we are requesting is IRRELEVANT TO YOU - IT WOULD NOT EFFECT YOU EVEN SLIGHTLY, so what are you complaining about? It currently uses HAL for you and would CONTINUE to use HAL for you.
  • Ra'Shtar
    Ra'Shtar
    ✭✭✭✭✭
    Not true, it would have a negative effect on my CPU due to your suggestion of increasing the load on the CPU.
    Some of my favorite screenshots
    My opinions and posts are mostly on a PvE setting.
  • ADarklore
    ADarklore
    ✭✭✭✭✭
    ✭✭✭✭✭
    Can you please now implement ESO patch now, so when it makes a HAL call for the directX 11 specific features at login, instead of just crashing out and telling people "your graphics card isnt good enough", essentially "banning" them from playing the game, instead use the returned fail of HAL call to call HEL for those missing features so people with DirectX 10 cards, etc. can actually play! There is no need for compromise - you dont have to remove any game features or updates, just add some code to use HEL for missing hardware! Simple! :)

    I'm only commenting because I disagree with the title... I don't expect ESO is going to lose a "HUGE" percentage of users... as most players on PC already have DX11. Even from the complaints here on the forums in the days following the Patch, it was an incredibly small number who bothered to log in and complain. So let's not be overly melodramatic.
    Edited by ADarklore on April 2, 2016 1:24PM
    CP: 2078 ** ESO+ 2025 Content Pass ** ~~ ***** Strictly a solo PvE quester *****
    ~~Started Playing: May 2015 | Stopped Playing: July 2025~~
  • Zakor
    Zakor
    ✭✭✭
    Leandor wrote: »
    I have to agree with @Zakor on this. Game is CPU choked anyways so adding more to it even with medium or low settings will only worsen the situation.

    You may be able to run it but forget about pvp or trials.


    You are missing the point my friend - it is ONLY the VERY few specific DirectX 11 functions which will run on the CPU, and even then ONLY if there isnt a graphics card with DirectX 11 hardware support.

    To people with a DirectX 11 graphics card, this change will make ZERO difference, it will still all be done on the card.

    To people with, for example, DirectX 10 graphics cards, ONLY the few minor extra DirectX 11 effects will be run on the CPU - yes, this may cause the game play so slow down very slightly, so it may be an idea to turn off some of the optional effects if you are running a slow machine, BUT, it WILL mean that all the thousands and thousands of people who are currently locked out the game will be able to play again.

    To the game developers - it will NOT hold the game back, it will not restrict what effects they want to use, all it will be means is telling their software engineers to use the DirectX API coding PROPERLY, like they should have in the first place, so that HAL is use for everything possible, and anything not covered in hardware is then passed to HEL for emulation. The resulting overhead on the CPU is then the USERS decision to make! There are people, especially on laptops, who have very basic graphics cards, but TOP END CPUs and lots of RAM, etc..

    I'm sorry but I have to disagree again. ZOS made this step because they are clearly up to use the DirectX 11 features more than "sometimes" or "in that special situation when...". I think they wan't to use the multithreading or shaders permanently. This means any user without D11 card would have a HUGE CPU overhead that wouldn't be maintained or even cared by ZOS.

    Now you have to see the Business side of the problem:
    Do you wanna have a product that might run (and if very slow/bad) for all people or do you wanna have a product that you can sell often because it runs smoothly? This game has a reputation and (while it's not quite that good on the pvp-part of this forum) it's not bad. If there gather more and more reports about the game being nearly unplayable (because the users may use D9 card and emulation) the games reputation would suffer greatly for the reason that people play with insufficient hardware and complain about performance.

    Compute Shader, Dynamic Shader Linkingm, Multithreading, Tessellation, and a few others.
    And btw: Anything with "Shader" in it's name or "Tesselation" is used quite often. So it's not just these "few specific features", the whole ingame graphic could be based on these -> Permanent overhead.
    Your effort to make this game playable for everyone in honor but I don't think it's a good way to deal with that.
  • Zakor
    Zakor
    ✭✭✭
    Ra'Shtar wrote: »
    Not true, it would have a negative effect on my CPU due to your suggestion of increasing the load on the CPU.

    Nope, that is not what he was suggesting, read again ;)
  • timlongsonb16_ESO
    ADarklore wrote: »
    Can you please now implement ESO patch now, so when it makes a HAL call for the directX 11 specific features at login, instead of just crashing out and telling people "your graphics card isnt good enough", essentially "banning" them from playing the game, instead use the returned fail of HAL call to call HEL for those missing features so people with DirectX 10 cards, etc. can actually play! There is no need for compromise - you dont have to remove any game features or updates, just add some code to use HEL for missing hardware! Simple! :)

    I'm only commenting because I disagree with the title... I don't expect ESO is going to lose a "HUGE" percentage of users... as most players on PC already have DX11. Even from the complaints here on the forums in the days following the Patch, it was an incredibly small number who bothered to log in and complain. So let's not be overly melodramatic.


    Wow - now that is a lot of assumptions. Think this way - for every player who posts on these forums, there will be at least 1000 who either cant be bothered or dont know how to.

    Why complain about a small patch which does NOTHING to people who are already playing, and makes a few thousand other people happy? Something which would never have even been an issue if the patch was written less sloppily in the first place! I mean - do they do ZERO testing? It was DAYS of thousands of crashes before they even figured out it was their DirectX coding which was causing crashes in the first place!

    In short - if you can play ESO, and are not an ESO developer, then this thread is not relevant to you, and will not effect you.
  • Zakor
    Zakor
    ✭✭✭
    ADarklore wrote: »
    Can you please now implement ESO patch now, so when it makes a HAL call for the directX 11 specific features at login, instead of just crashing out and telling people "your graphics card isnt good enough", essentially "banning" them from playing the game, instead use the returned fail of HAL call to call HEL for those missing features so people with DirectX 10 cards, etc. can actually play! There is no need for compromise - you dont have to remove any game features or updates, just add some code to use HEL for missing hardware! Simple! :)

    I'm only commenting because I disagree with the title... I don't expect ESO is going to lose a "HUGE" percentage of users... as most players on PC already have DX11. Even from the complaints here on the forums in the days following the Patch, it was an incredibly small number who bothered to log in and complain. So let's not be overly melodramatic.


    Wow - now that is a lot of assumptions. Think this way - for every player who posts on these forums, there will be at least 1000 who either cant be bothered or dont know how to.

    Why complain about a small patch which does NOTHING to people who are already playing, and makes a few thousand other people happy? Something which would never have even been an issue if the patch was written less sloppily in the first place! I mean - do they do ZERO testing? It was DAYS of thousands of crashes before they even figured out it was their DirectX coding which was causing crashes in the first place!

    In short - if you can play ESO, and are not an ESO developer, then this thread is not relevant to you, and will not effect you.

    In short it will. 3 Points: Development time, maintenance of the code, money. Ressources that could be spent better, for example to get rid of some CPU load ;)
    You think to short and don't cover a huge area of also important things. From your reaction I assume you are not able to play anymore. Other way, you ended the OP with your PhD, so i think you should be able to get your hands on a decent D11 card. Time to upgrade :)
    Edited by Zakor on April 2, 2016 2:06PM
  • timlongsonb16_ESO
    Zakor wrote: »
    ADarklore wrote: »
    Can you please now implement ESO patch now, so when it makes a HAL call for the directX 11 specific features at login, instead of just crashing out and telling people "your graphics card isnt good enough", essentially "banning" them from playing the game, instead use the returned fail of HAL call to call HEL for those missing features so people with DirectX 10 cards, etc. can actually play! There is no need for compromise - you dont have to remove any game features or updates, just add some code to use HEL for missing hardware! Simple! :)

    I'm only commenting because I disagree with the title... I don't expect ESO is going to lose a "HUGE" percentage of users... as most players on PC already have DX11. Even from the complaints here on the forums in the days following the Patch, it was an incredibly small number who bothered to log in and complain. So let's not be overly melodramatic.


    Wow - now that is a lot of assumptions. Think this way - for every player who posts on these forums, there will be at least 1000 who either cant be bothered or dont know how to.

    Why complain about a small patch which does NOTHING to people who are already playing, and makes a few thousand other people happy? Something which would never have even been an issue if the patch was written less sloppily in the first place! I mean - do they do ZERO testing? It was DAYS of thousands of crashes before they even figured out it was their DirectX coding which was causing crashes in the first place!

    In short - if you can play ESO, and are not an ESO developer, then this thread is not relevant to you, and will not effect you.

    In short it will. 3 Points: Development time, maintenance of the code, money. Resources that could be spent better, for example to get rid of some CPU load ;)
    You think to short and don't cover a huge area of also important things. From your reaction I assume you are not able to play anymore. Other way, you ended the OP with your PhD, so i think you should be able to get your hands on a decent D11 card. Time to upgrade :)

    Zakor you really dont know whaqt you are talking about.

    Again - THIS FIX WOULD NOT EFFECT PLAYERS WITH A DIRECTX 11 GRAPHICS CARD - IT WILL NOT EFFECT YOUR CPU OR ANYTHING ELSE! IF YOUR ESO IS PLAYING OK - GO READ ANOTHER THREAD WHICH IS USEFUL TO YOU LOL!

    It will allow thousands of players to play again who currently cant, and them playing will allow them to spend REAL money in game which puts more money into the game, which will allow the developers to keep working on the game - win win win.
    Edited by timlongsonb16_ESO on April 2, 2016 2:52PM
  • Ra'Shtar
    Ra'Shtar
    ✭✭✭✭✭
    What thousands? Probably less than 200 people where affected.
    Some of my favorite screenshots
    My opinions and posts are mostly on a PvE setting.
  • Lunovus
    Lunovus
    ✭✭
    If you check your links to those LOADS of websites (actually Google books searches) you'll notice the link you gave is for a book that explains DirectX 2D graphics.

    If you check like the 2nd hit you'll get:
    https://books.google.co.uk/books?id=MbALAAAAQBAJ&pg=PA19&dq=how+to+use+HEL+if+call+for+HAL+fails+in+DirectX&hl=en&sa=X&ved=0ahUKEwif1bjGjvDLAhWDvBQKHYuGAnwQ6AEIJTAB#v=onepage&q=how%20to%20use%20HEL%20if%20call%20for%20HAL%20fails%20in%20DirectX&f=false

    That tells you
    A Direct3D 10 device can be either in hardware or in software rendering mode. As the names imply, hardware mode runs everything on your graphics hardware, while software mode, also known as reference or REF mode, runs everything on the CPU. In Direct3D 9 and earlier versions, the hardware mode was executed through the Hardware Abstraction Layer (HAL). Direct3D 10 does not have these layers, as it is a new API built from the ground up for Vista.

    For Direct3D 11 check:
    https://msdn.microsoft.com/de-de/library/windows/desktop/ff476328(v=vs.85).aspx and the functions that use this enum.

    As the documentation says "A hardware driver uses hardware acceleration (on supported hardware) but can also use software for parts of the pipeline that are not supported in hardware."

    If your NVidia, or AMD, or Intel driver does, it'll work (hopefully).

    If your GFX card does not support D3DX11, there simply won't be such a driver that D3D11CreateDevice or D3D11CreateDeviceAndSwapChain can find.

    You can't create a mixed D3DDevice in D3DX10 and later, only your HAL driver MAY do some functions in software.

    If there is no D3DX11 driver for your GPU (or one that supports the requested feature levels), D3D11CreateDevice or D3D11CreateDeviceAndSwapChain will simply fail.

    There is no such thing as mixing HAL and HEL in D3DX100 and later, at least beyond driver level. and that is the job of the driver devs of your GPU, not those of the ESO devs.
    Edited by Lunovus on April 2, 2016 2:36PM
  • Zakor
    Zakor
    ✭✭✭

    Again - THIS FIX WOULD NOT EFFECT PLAYERS WILL A DIRECTX 11 GRAPHICS CARD - IT WILL NOT EFFECT YOUR CPU OR ANYTHING ELSE! IF YOUR ESO IS PLAYING OK - GO READ ANOTHER THREAD WHICH IS USEFUL TO YOU LOL!

    I never said anything like that. Calm down Capt. CAPSlock.
    I just said you haven't though your idea to the end ...
    Lunovus wrote: »
    If you check your links to those LOADS of websites (actually Google books searches) you'll notice the link you gave is for a book that explains DirectX 2D graphics.

    If you check like the 2nd hit you'll get:
    https://books.google.co.uk/books?id=MbALAAAAQBAJ&pg=PA19&dq=how+to+use+HEL+if+call+for+HAL+fails+in+DirectX&hl=en&sa=X&ved=0ahUKEwif1bjGjvDLAhWDvBQKHYuGAnwQ6AEIJTAB#v=onepage&q=how%20to%20use%20HEL%20if%20call%20for%20HAL%20fails%20in%20DirectX&f=false

    That tells you
    A Direct3D 10 device can be either in hardware or in software rendering mode. As the names imply, hardware mode runs everything on your graphics hardware, while software mode, also known as reference or REF mode, runs everything on the CPU. In Direct3D 9 and earlier versions, the hardware mode was executed through the Hardware Abstraction Layer (HAL). Direct3D 10 does not have these layers, as it is a new API built from the ground up for Vista.

    For Direct3D 11 check:
    https://msdn.microsoft.com/de-de/library/windows/desktop/ff476328(v=vs.85).aspx and the functions that use this enum.

    As the documentation says "A hardware driver uses hardware acceleration (on supported hardware) but can also use software for parts of the pipeline that are not supported in hardware."

    If your NVidia, or AMD, or Intel driver does, it'll work (hopefully).

    If your GFX card does not support D3DX11, there simply won't be such a driver that D3D11CreateDevice or D3D11CreateDeviceAndSwapChain can find.

    You can't create a mixed D3DDevice in D3DX10 and later, only your HAL driver MAY do some functions in software.

    If there is no D3DX11 driver for your GPU (or one that supports the requested feature levels), D3D11CreateDevice or D3D11CreateDeviceAndSwapChain will simply fail.

    There is no such thing as mixing HAL and HEL in D3DX100 and later, at least beyond driver level. and that is the job of the driver devs of your GPU, not those of the ESO devs.

    ...which is proved by this. Thanks @Lunovus for that nice tech insight ;)
    Edited by Zakor on April 2, 2016 2:54PM
  • murtrem_ESO
    murtrem_ESO
    ✭✭✭
    If you dont have a dx11 card then chances are that your cpu is also outdated. I recently upgraded from an AMD fx6300 to an Intel i5 6600k. Used the same gtx970 video card. Both CPUs are rated at 3.5ghz. With the old CPU I was averaging 40fps on medium settings. Now Im avèaging 70+ fps on ultra settings. So lets say customer x has a dx9 video card and CPU from the same era. Now ZOS implements this change that sends "very few" processes to the CPU instead of of the GPU. The CPU is already overworked and struggling to run the game, now it has "very few" more things to do but still MORE. I envision a situation where customer x can no longer play the game at all. Because now if they want to continue to use an extremely outdated GPU, they will have to upgrade everything else in the system instead. I KNOW you keep emphasizing "very few" features diverted to the CPU.. but you need to understand that the CPU is already holding back performance. It is not a good idea to add ANYTHING else for it to do while running this game.

    Kinder regards,
    Josh - highschool graduate
    Edited by murtrem_ESO on April 2, 2016 4:48PM
    They're called fingers but I've never seen em fing
  • Eiagra
    Eiagra
    ✭✭✭✭✭
    For those who are on the "Just get a new graphics card boat" bear in mind that some users played this game on their laptop, which does NOT have the ability to swap in a new card, and there is a strong possibility that many of them cannot afford to just run out and get a new laptop, nor can they afford to build or buy a new desktop system specifically for gaming.

    That may be a small percentage of users that fall through the holes, and those users may be the most financially poor, but they are part of the userbase nonetheless. They should not feel invalidated just because they lack the same measure of resources as most other gamers and/or players of ESO.
          In verity.
  • timlongsonb16_ESO
    Zakor wrote: »
    A Direct3D 10 device can be either in hardware or in software rendering mode. As the names imply, hardware mode runs everything on your graphics hardware, while software mode, also known as reference or REF mode, runs everything on the CPU. In Direct3D 9 and earlier versions, the hardware mode was executed through the Hardware Abstraction Layer (HAL). Direct3D 10 does not have these layers, as it is a new API built from the ground up for Vista.

    For Direct3D 11 check:
    https://msdn.microsoft.com/de-de/library/windows/desktop/ff476328(v=vs.85).aspx and the functions that use this enum.

    As the documentation says "A hardware driver uses hardware acceleration (on supported hardware) but can also use software for parts of the pipeline that are not supported in hardware."

    If your NVidia, or AMD, or Intel driver does, it'll work (hopefully).

    If your GFX card does not support D3DX11, there simply won't be such a driver that D3D11CreateDevice or D3D11CreateDeviceAndSwapChain can find.

    You can't create a mixed D3DDevice in D3DX10 and later, only your HAL driver MAY do some functions in software.

    If there is no D3DX11 driver for your GPU (or one that supports the requested feature levels), D3D11CreateDevice or D3D11CreateDeviceAndSwapChain will simply fail.

    There is no such thing as mixing HAL and HEL in D3DX100 and later, at least beyond driver level. and that is the job of the driver devs of your GPU, not those of the ESO devs.

    ...which is proved by this. Thanks @Lunovus for that nice tech insight ;)

    I find this hard to believe, but I have raised a ticket with NVidia - they said that what is posted is above "sounds rubbish" but will do some testing.

    I have confirmed that the entire game can be run entirely via HEL, so the only remaining issue is if there is some truth to the suggesting that for some reason you can not "swap back and forth between HEL and HAL in DirectX 11".

    NVidia will update me and I will keep this posted - but I really struggle to believe that the core concept of DirectX would suddenly be thrown out of the window without a coding solution. It has been a few years since I did any DirectX programming - being a Virtual Reality researcher I am primarily using other tools, but the main value of DirectX is the flexibility to use both HAL and HEL, so I would hope people currently working with the API will find a solution on the white papers.
  • sirinsidiator
    sirinsidiator
    ✭✭✭✭
    @timlongsonb16_ESO The question as to why DX9 support has been dropped has already been answered here.

    They plan to use Compute Shaders to offload calculations to the GPU and if you google "directX 9 compute shaders", the first result will tell you that "Compute shaders cannot be used on Direct3D 9.x hardware".

    So instead of putting a lot of time and money into supporting the shrinking 2.16% that still use some outdated hardware, they simply dropped it in favor of possible performance improvements.
    https://www.imperialtradingcompany.eu/ - My Addons - The Vault (Early updates and experimental projects) - My patreon - My blog
  • danno8
    danno8
    ✭✭✭✭✭
    ✭✭✭✭✭
    @timlongsonb16_ESO The question as to why DX9 support has been dropped has already been answered here.

    They plan to use Compute Shaders to offload calculations to the GPU and if you google "directX 9 compute shaders", the first result will tell you that "Compute shaders cannot be used on Direct3D 9.x hardware".

    So instead of putting a lot of time and money into supporting the shrinking 2.16% that still use some outdated hardware, they simply dropped it in favor of possible performance improvements.

    That 2.16% is not the number you should be looking at. It is all the systems that are less than DX11 capable card and/or OS. That number is more like 15% (+2.16% for whatever "other" is).

    Just sayin'. Personally I think ZoS did their own math and decided to drop it.
  • Zakor
    Zakor
    ✭✭✭
    @timlongsonb16_ESO The question as to why DX9 support has been dropped has already been answered here.

    They plan to use Compute Shaders to offload calculations to the GPU and if you google "directX 9 compute shaders", the first result will tell you that "Compute shaders cannot be used on Direct3D 9.x hardware".

    Just what i thought and what is just logical if you think about the current CPU-bottleneck.
    I have confirmed that the entire game can be run entirely via HEL

    The only thing you confirmed is theory. And still, I don't think it's a good idea to add more CPU intensity. But I think to test or even implement that would be up to ZOS at the end. Anyway I#m happy they at least try to get rid of the bottleneck.
  • ZOS_AlexTardif
    ZOS_AlexTardif
    ✭✭✭✭
    Lunovus wrote: »

    That tells you
    A Direct3D 10 device can be either in hardware or in software rendering mode. As the names imply, hardware mode runs everything on your graphics hardware, while software mode, also known as reference or REF mode, runs everything on the CPU. In Direct3D 9 and earlier versions, the hardware mode was executed through the Hardware Abstraction Layer (HAL). Direct3D 10 does not have these layers, as it is a new API built from the ground up for Vista.

    For Direct3D 11 check:
    https://msdn.microsoft.com/de-de/library/windows/desktop/ff476328(v=vs.85).aspx and the functions that use this enum.

    As the documentation says "A hardware driver uses hardware acceleration (on supported hardware) but can also use software for parts of the pipeline that are not supported in hardware."

    If your NVidia, or AMD, or Intel driver does, it'll work (hopefully).

    If your GFX card does not support D3DX11, there simply won't be such a driver that D3D11CreateDevice or D3D11CreateDeviceAndSwapChain can find.

    You can't create a mixed D3DDevice in D3DX10 and later, only your HAL driver MAY do some functions in software.

    If there is no D3DX11 driver for your GPU (or one that supports the requested feature levels), D3D11CreateDevice or D3D11CreateDeviceAndSwapChain will simply fail.

    There is no such thing as mixing HAL and HEL in D3DX100 and later, at least beyond driver level. and that is the job of the driver devs of your GPU, not those of the ESO devs.

    Thanks @Lunovus for posting that information, we can confirm that is correct. In addition, it's important to note that running in any kind of software rendering mode would cripple the CPU to the point where you'd be running ESO in PowerPoint Slideshow Mode (TM). That would not be a quality experience for our users (even on lower end machines), and so we have elected to not officially support that. As @timlongsonb16_ESO and a number of other people on the forums have posted since Thieves Guild launched, there are ways to force the software renderer, and those who run in that mode experience exactly what has been described here by a few people: a throttling of the CPU that results in a near-unplayable or worse experience.

    In addition, the goal for the future of ESO is to improve framerate and GPU utilization via DX11 features like Compute Shaders in order to alleviate CPU bottlenecks, not the other way around. There are other implications to not needing to support DX9 and 10 anymore, such as the additional QA and development time we gain back from not having to. Rather than needing to test six platforms/APIs (DX9, DX10, DX11, Mac, Xbox, PS4), we are now down to four. The APIs (especially between DX9 and 11) are different enough that they result in a lot of time lost to DirectX-API-level specific bugs and feature development, and since relying on a software renderer is simply not an option, we have dropped support for it.

    We do understand the frustration of having to upgrade hardware in order to keep pace with a specific game, but we are committed to making this game have the best experience possible, and we got to the point where (in order to do so) we had to cut ties to previous DirectX versions, which are no longer officially supported by Microsoft and Nvidia, so that we can spend much more time and resources towards that effort.
    Zenimax Online Studios
    Staff Post
  • Sindala
    Sindala
    ✭✭✭✭✭
    Sorry as I'm a bit late to the thread, but arnt we using DirectX 12 now?
    I just checked my lappy and it says I am?
    Being First is not the prize, it just mean's everyone can stab you in the back.
  • jamesharv2005ub17_ESO
    jamesharv2005ub17_ESO
    ✭✭✭✭✭
    ✭✭✭
    Sindala wrote: »
    Sorry as I'm a bit late to the thread, but arnt we using DirectX 12 now?
    I just checked my lappy and it says I am?

    While your pc and vid card might support dx12 ESO at this time does not use it.
  • DaveMoeDee
    DaveMoeDee
    ✭✭✭✭✭
    ✭✭✭
    Leandor wrote: »
    I have to agree with @Zakor on this. Game is CPU choked anyways so adding more to it even with medium or low settings will only worsen the situation.

    You may be able to run it but forget about pvp or trials.

    It is possible ZOS tested the game doing what the OP suggests and the performance was unacceptable.

    If we were to accept the premise of the OP that because it is possible to code, they should code it, regardless of performance, then what happens when that code goes live and people ask why ZOS released the game if it performs so poorly?
Sign In or Register to comment.