AMD: DirectX Holding Back Game Performance

Page 2 - Seeking answers? Join the Tom's Hardware community: where nearly two million members share solutions and discuss the latest tech.
Status
Not open for further replies.

atikkur

Distinguished
Apr 27, 2010
327
0
18,790
i you dont like it, then use something else or just creating it new. if windows os is the problem, then why not to make something cool.. like Gaming OS, with its own apis to take all neccesaries from the latest hardware (cpu/gpu). result is.. the pc that behaves like console.. with pure 10x more cool performances. dont just talk, just do it. we are waiting.
 

pelov

Distinguished
Jan 6, 2011
423
0
18,810
If graphics are limited by the API, then wouldn't it make sense to just an open source API as a standard that gets slowly pushed up? OpenGL/CL work quite well on the PC platform. If they're pushed up to compete with dx11, or whatever the current version of MS's DX they release in the future, you can have a stable API that works well with generally modern hardware but you still have the source code to improve upon it.

for instance, if you'd like to have the most incredible graphics ever designed you can just improve upon the already established code and release your product. Then make the choice of whether to release that and make it public or keep it to yourself. Ultimately, OpenGL/CL would still make steps forward and keep pushing the envelope, but at least this way you'd be free to take it upon yourself to push it even further than the industry standard.
 

Benihana

Distinguished
Nov 21, 2009
330
0
18,780
I regularly soil my pants at the graphics developers can push out with DirectX. I hope AMD doesn't do anything productive, otherwise I won't have any clean pants left.
 
[citation][nom]bystander[/nom]Reading over the article, it seems that the API has more benefits than negatives. Especially for the non elite developers.[/citation]

Strangley yes. OpenGL is nice but its lagging in a lot of features that DX11 has so thats why I can't understand this.

And compared to DX9, there are some amazing effects you can do with DX11 (if you utilize SM5.0 that is).

Maybe he just hates MS. Truth is that whats really holding back gaming is consoles. Hate to say it but devs don't try as hard because consoles just lag in hardware. They can't push boundaries with 5 year old hardware. Look at the Unreal 3.975 engine. Thats mind blowing stuff that current PC hardware can handle.
 

WheelsOfConfusion

Distinguished
Aug 18, 2008
705
0
18,980
[citation][nom]jimmysmitty[/nom]Strangley yes. OpenGL is nice but its lagging in a lot of features that DX11 has so thats why I can't understand this.[/citation]
OGL 4.0 was supposed to bring it up to feature parity with DX11, and I think they're at 4.1 now, which has some dev-friendly features thrown in. It also has the benefit of being cross-platform.
 

znegval

Distinguished
Dec 15, 2009
99
0
18,630
This "low level programming would take forever" thing is bullcrap. You know what drives humans towards difficult goals? Profit and competition. And there's lots of it in the gaming industry. Game makers could simply continue building new games using DirectX while keeping a team of engineers working on their own API (who said they would do it all in assembly forever?) for some years. Only problem would be compatibility as stated in the article.
 

K2N hater

Distinguished
Sep 15, 2009
617
0
18,980
It seems obvious to me that Microsoft used "incentives" to persuade game developers and chip makers to use DirectDraw and later Direct3D even though OpenGL was faster and much more stable.
 

f-14

Distinguished
to the game devs. that's what linux is for.
stop telling microsoft to write themselves out of the equation, if you don't like it go around windows, go over windows go under windows go thru windows or go use some other OS or write your own damn OS to make the game play the way you want it to play.
i swear these developers have never heard of virtualization, linux, and other modernizations! they're still writing 32bit for crying out loud- oh yeah that's right their fluffy little cell processor is only 32 bit.
do we have to wait for playstation 4 to have a 64bit processor before games and other software are going to be written in 64bit?
PROBABLY
 

Marcus52

Distinguished
Jun 11, 2008
619
0
19,010
You people are aware that games were made before APIs and game engines existed, right? Games that didn't take "forever" to build, and made money? That started gaming companies that went on to become big deals in the gaming world?

You also are aware that every modern graphics card is fully OpenGL capable, too, right? Video cards don't just do what the DirectX standards lay out for them to do and that's it, they are capable of whatever the manufacturers decide to put in them, and they include DirectX along with whatever else there is. They aren't limited by DX because of that.

;)









 

tavix

Distinguished
Oct 18, 2010
40
0
18,530
That reminded me of 3DFX's Glide API wich was x2 times faster and visual better than Direct3D at that time. But M$ and co. had to remove the competition...
 
[citation][nom]tavix[/nom]That reminded me of 3DFX's Glide API wich was x2 times faster and visual better than Direct3D at that time. But M$ and co. had to remove the competition...[/citation]
You mean Nvidia right, they bought 3dfx and closed em down.
 

hixbot

Distinguished
Oct 29, 2007
818
0
18,990
Microsoft has no interest in making PC gaming superior to the Xbox 360. As long as there is no real aggressive competition in the PC graphics API space, Microsoft is happy to keep PC gaming from advancing too quickly. Afterall, they want PC developers to move to the Xbox 360, where MS can take their cut.
OpenGL just keeps pace with Direct3d, which isn't enough to push MS to give us an API that would crush the Xbox 360.
This is why I haven't bought new PC hardware in 3 years. Higher resolutions and more AA doesn't do it for me, I want new eye candy.
GPU vendors are hurting because of this, they know their hardware has potential to blow away the consoles, but the APIs don't allow it. So all they can do is give us higher and higher resolutions and more agressive AA. Boring.
 

Th-z

Distinguished
May 13, 2008
74
0
18,630
Like DirectX, OpenCL and OpenGL are all APIs. The idea is to bypass these APIs and code at close to metal for the PC GPU. According to Huddy, consoles are able to outperform PC in number of draw calls because they can tweak 360 and PS3 at the low level.

But the question is, if console developers can either choose API for convenience, or close to metal for max performance (at later part of console life span), why is it not possible on PC GPU? Are they not allowed to do that if they *choose* to?

The idea has been mentioned before, Tim Sweeney of Epic has already said the same thing 3 years ago:

http://www.tgdaily.com/business-and-law-features/36410-tim-sweeney-part-2-%E2%80%9Cdirectx-10-is-the-last-relevant-graphics-api%E2%80%9D

That's why they were exciting about Larabee, a hardware that allows freedom, rather than bound by APIs and their overheads. Of course we know it never make public.

I think big engine developers who want to push the envelope would want to do that, while smaller budget or indie developers can always use API, the important part is having a paradigm that facilitate both practices.
 

silverblue

Distinguished
Jul 22, 2009
1,199
4
19,285
I like the dirty shot at Larrabee. :) However, APIs remove some of the complexity required in programming for multiple configurations, which in itself reduces cost, which in turn keeps a lot of dev teams in business. If everyone felt that they had to put extra work in to make their game stand out, I think we'd lose a lot of software houses quite quickly. Survival of the fittest, I suppose.
 

Vladislaus

Distinguished
Jul 29, 2010
1,290
0
19,280
[citation][nom]tavix[/nom]That reminded me of 3DFX's Glide API wich was x2 times faster and visual better than Direct3D at that time. But M$ and co. had to remove the competition...[/citation]
I thought that it was nvidia that had to remove the competition. After all it was bought by them.
 

sykozis

Distinguished
Dec 17, 2008
1,759
5
19,865
People seem to be confusing things a bit here. OpenCL is completely different from DirectX and OpenGL. OpenGL, literally means Open Graphics Library.....whereas OpenCL literally means "Open Computing Language". OpenCL is not a graphics API to any extent. In the case of nVidia, OpenCL is an alternative to CUDA.

DirectX and OpenGL = Graphics API's
CUDA and OpenCL = GPGPU "Compute" API's

Also, 3DFx killed off the Glide API by bankrupting themselves... All nVidia did was buy out 3DFx and refuse further development of the Glide API. Glide would have never survived long-term being a proprietary API, competing against DirectX and OpenGL. Developers lose money in the long-term by using proprietary APIs. Glide, much like PhysX, only benefit the hardware maker that owns the "technology". They don't benefit the devs or the consumers.
 

sykozis

Distinguished
Dec 17, 2008
1,759
5
19,865
[citation][nom]Spanky Deluxe[/nom]If developers really cared they would just use OpenCL or CUDA to write their engines.[/citation]

That wouldn't be a bad idea....if it didn't require Devs to completely rewrite graphics APIs to make them compatible with OpenCL or CUDA. Given that CUDA is a proprietary nVidia "technology"...which like PhysX was actually purchased and not even remotely created by nVidia.... A CUDA compatible graphics engine wouldn't be desirable as it would only be compatible with nVidia graphics cards and as such would be against US Fair Competition laws. This would allow AMD to file Anti-Competitive charges against nVidia and the gamer developers....which would be very bad for ALL parties. An OpenCL compatible graphics engine would essentially strangle your graphics card as OpenCL is a GPGPU Compute Language....which runs on the GPU. You would have little to no processing power left to render the graphics....
 

anwaypasible

Distinguished
Oct 15, 2007
990
0
19,060


true that direct X was designed to bypass the operating system as a method to make the most with the processing power available.
but just as the operating system got in the way of games, direct X has gotten in the way by means of a puzzle that might not be suitable for all artistic individuals.

the article on tomshardware is pretty much talking about one thing.
direct X is a shading technique at its core level.
wanting to have objects in 3D can be had with your own mathematical programming.
3D computer aided drafting is an example of a 3D visual without using direct X
what makes direct X bloatware is all of the techniques used to lock the shader from being changed and/or manipulated.
each direct X version offers an upgrade to the amount of shading detail available.
and it's done this way to prevent game developers from releasing too much shader detail/resolution.
it wouldnt be fair for somebody to use customized shaders that appear to look like direct X 11 when the current version of direct X at the time of game release was direct X 8

with the shader locked.. you are forced (regulated really) to put a cap on the amount of shader quality.
it makes the field fair for people who cannot customize their own shaders.. but unfair for people who can make improvements to the shader.
normally people who could customize their own shader are offered a job doing something else.
their extra ability gives them higher priority to fill the job.. usually because the job requires advanced know-how.

what AMD stated is totally true.. if there is no performance boost of the graphics card to compensate for the locking mechanism of the shader, the performance will be less because the system is bloated (known as overhead)
even if you boost the performance to compensate for the lock, removing the lock (and agreeing to leave the shader alone) will remove the overhead and give a faster performance.

many of you should already know this to be true, thanks to consoles.
these games run on slower graphics cards because the entire system as a whole (cpu, chipset, graphics) doesnt have to run much of an operating system.
its the same thing as removing weight from a vehicle to make it go faster on the drag strip.
door panels.. seats.. carpet.. dashboard.. gas tank..
removing those can make the car 200 - 300 lbs lighter.
and that might be enough to lower your drag time by a full second.

for game developers, removing the bloat can give more frames per second.
and the important part of more frames per second means you can add more to the game until the frames per second go back down.
it might amount to a bigger map.. higher texture resolution.. more 3D wires
that is to say, your video game will have more details (or a bigger map) compared to another video game.
then you could use those extras as a selling point to lure in more customers.

but lets be reasonable here.
if you remove the lock and allow people to customize the shaders to whatever they want, eventually you are going to see eye-popping realism that makes the use of 3D glasses worthless.
you dont need 3D glasses to make the images appear to be visually life-like.
its all in the amount of shader detail.
anybody can draw a 3D cube.. but it takes a real artist to add shading to make the cube appear to lift of the page (or sink deeply into it)

think about what that would do to the current economy.
there are loads of new televisions that simply cannot produce the fine details to make the video look like its sinking deep into the screen.
cheap/junk lcd's have a hard time with color accuracy and sharpness.
then you want to go on and on about displaying 3,000 different shades of black?

the more shades of black that you have at your disposal.. the better your chances will be at making the picture look 3D
CRT's have come a long long long way.
you can rest your forehead up to a CRT and be mentally fooled into thinking that what is before your eyes is actually there in front of you.
all you have to do is forget that your forehead is touching the television.

state-of-the-art visual technology has moved on from 3D
you can rest your forehead up to a television and literally see for miles.
building a wall of televisions and putting a camera behind them.. you wouldnt even know that there is a wall of television there until you walked into the wall.
its like walking into an invisible shield.

if you allow game developers to produce graphics with that much clarity.. there are hundreds of televisions already in peoples homes that wont display the clarity.
you will see the true quality of the television.
and that would be a living hell for all television manufacturers.
two televisions of the same model number might have very different results.
the whole situation would look like a benchmark results graph that many of us have seen.
the only difference would be the prices that dont gradually increase as you move from bottom to top.
the results would vary all over the place like a kaliedoscope.
even the televisions that claim to support 3D glasses would have their shortcomings.

its like a bad smell coming from a bag, and you open the bag to see how ugly the situation actually is.
but i dont want to discredit the television industry too much.
i simply cannot.. because if the television can actually provide 1920x1080p resolution, the only thing holding back the television is the number of shades that the television is able to display.

there really is a downside though.
because the number of pixels limits the amount of 'mist' for shading.
if you had a cube with a shadow cast on the floor, you would want to use as many shades of black as possible to soften the shadow as it fades away.
but because 1920x1080p isnt an extremely high amount of pixels.. you simply cannot use all of the shades of black that are wanted.
you have to shorten the fade, and that means less shades used.


so what does all of this mean about direct X ?
leaving the lock in place will save a lot of embarassment.
game developers who arent capable of creating extra shades of black (or any other color) will have their lacking ability shown publicly.
televisions that arent capable of displaying all of the shades of black (or any other color) will have their lacking ability shown publicly.
the price paid for televisions might not match the ability of the television to show the shades of black (or any other color)
and that means people will be upset that they paid more for their television, but it doesnt have the same ability of another television that costs less.

by keeping the shader locked, it evens out the playing field quite a bit.
it gives the game developer more room to be unique with the maps.. and the storyline.. and everything else that makes a game unique.
the graphics have the potential to be exactly the same.. which leaves the storyline and details where all of the entertainment is at.

lets have a video game comparison.
back when nintendo was popular.. zelda had many many rooms, but most of them looked almost exactly the same.
now, current games like bioshock 2, have maps with many many different rooms.. but the copy and paste is much less.
sure, each room has a kitchen and a bathroom.. so of course you are going to see a lot of fridges and stoves and toilets.
but the living rooms and bedrooms are different.

and this doesnt really serve justice to a well refined map.
video games that are like a movie have the best example.. its possible to see every area of the map different because no two places are the same location.

anyways..
i havent yet spoken about the most important aspect of direct X and its downfalls.
since direct X is a pre-defined architechture.. that means development can be like a puzzle or brain-teaser.
just like the brain-teasers many people have learned to enjoy.
the two bent nails that must be seperated.. or the two horse shoes with chains welded onto the ends and a metal ring around the chain, the ring needs to be removed.
direct X can be just as complicated.

picture this, you have all of these pieces and all you have to do is fill out a form using those pieces.
but as with most forms.. there are words that create a sentence, and all you have to do is fill in a blank.
programming with direct X is not as easy as filling in the blanks.
you have to create your own sentences using the blank where it's pre-defined location is.
if you move the blank forward or backwards one word, you might see a performance problem.
and since the entire game engine is like a paragraph.. if you move the blank up or down a sentence, you might see a performance problem again (or even a crash)

not everybody can grasp the concept when there are too many options causing confusion.
its why people dont like to do puzzles.
you have 1,000 pieces to create one big picture.
but do you start with the edges or the inside?
do you continue working on the edge when you find pieces that connect and are part of the inside?
do you let those few pieces of inside bother you while you are doing the edge?
do you stop doing the bottom edge when you start to connect pieces for the top edge?

all of those stressful questions can cause anxiety.
and it is the anxiety that causes a person to be baffled by too many choices.
direct X is a form.. which can be seen as a limitation by those who cannot tend to the situation.
kinda like playing tic-tac-toe .. but totally confused as to which square to mark first.
its not infinite chaos.. its downright confusion.
you could start with a corner and hope the other person doesnt take the middle square next.
or you could be selfish and take the middle square first.

its unfair to say that there is a form you must abide by when the form presents too much confusion.
and it doesnt mean the person is any less of an artist, because their idea for a video game might be superb.
what must be forced is that of the hardware.
each graphics card needs a standard so that the consumer can go out and select whichever graphics card they want and it will work when they bring it home.
otherwise you would need a specific graphics card for each video game.
that kind of upbringing is counter-productive.
the low-level programming is a dictionary that all graphics cards can read.
the high-level programming is simply algebra.
3 x 2 = y
the 3 and the 2 are high-level programming
depending on which numbers you choose will select the low-level programming for you.
if the answer of 6 is too slow, you need to adjust your high-level programming until you find a number that is faster.

the low-level programming should already be perfect if and when all words are available.
splitting the words up and calling each category a different high-level programming language is worse.
when you dont have access to the perfect low-level word because you dont know the programming language to make the low-level use that specific word.. you have to go back to college and get a degree for that programming language.
and if you use only one or two words from a different category.. having to upload that entire category with all of the words you didnt use is going to tax the hardware.
maybe you use more RAM on the motherboard.
maybe you use more RAM on the graphics card.
maybe the extra words cause latency because the registry is bigger than it needs to be.. thus slowing down your search times.

latency is extremely important for video games.
its what raises or lowers the frames per second.
just like changing the steering ratio on a car will affect the ability to control the car as it shoots down the drag strip.
the car is just as fast as before, except after changing the steering ratio.. you can control the left and right movement a lot easier.
that makes the driver less scared, as it provides a lesser chance of hitting the wall or going into the other lane.
it can even help you stay on the part of the track where there is extra traction (that is usually where the rubber from other tires is at.. because rubber to rubber is better than rubber to cement or asphalt .. as long as that rubber isnt loose)

direct X makes low-level programming a standard.. but doesnt totally imply that there is only one form that needs to be filled out.
other forms can be acceptable.
and if you had to mix direct X with openGL to get things the way you wanted.. you shouldnt be forced to use one or the other.
because its the low-level programming that is important and creates the game.
if you have a specific foundation as your goal.. placing a house on top of the foundation that doesnt fit is unacceptable as it limits your desire to use which foundation you want.

i am pleased that there is a standard for low-level programming.
but i wouldnt tolerate being told that i only have three different shapes of foundation to choose from.
there is square
round
and rectangle
if i wanted to make a custom curve, the low-level language supports the curve and direct X doesnt.. i believe they call that a custom assembly (or a custom compiler?)

from what i can gather, if you have the blocks and you have the mortar, and you have the ability to lay down the mortar as you lay down a block on top of the mortar.. you should be able to make any shape you desire.
having the choice of square, circle, or rectangle doesnt adhere to a right of being unique.
but you should consider how fast the custom curve runs on the hardware.
if the visual effect is worth it.. go for it.
and if the custom curve is the only thing you can pour out of your brain.. go for it.
its just sad to see a custom curve working slow because the hardware is stubborn.

maybe one day we will see graphic cards change their operating status for each video game as the game is loaded.
it would change the name of graphic card to graphicS card (or is it graphics card to graphic ?)

there are a lot of rules of conduct that i dont agree with.
sometimes its not the actual rules, its just the way the words are presented to me.
i am a big fan of bullet points rather than paragraphs.
other times the rules of conduct have things i dont agree with.. which could be considered 'bloating'
but sometimes downright infringing on human rights (or american rights)
 

anwaypasible

Distinguished
Oct 15, 2007
990
0
19,060


'which' running on the GPU could be said to be improper as it would be better to run 'which' on the chipset processor.
thats what chipset processors do.. they deal with 'which' everyday.
asking the main processor to compute direction is simply overhead.
and it doesnt matter if the main processor computes 'which' and then sends the answer to the chipset
or
if the main processor sends the problem to the chipset and allows the chipset to answer the question of 'which'
without a processor dedicated to processing 'which'
the main processor could have all i/o addresses stored in cache and send the information down the right circuit board trace.
otherwise the chipset is told where the information is supposed to go and acts like a junction to direct the information down the right circuit board trace.

from what i have read.. thats what consoles are already doing.
you gotta get in there and tell the information to go to cache or go to processor or go to the video out port or go to the controller.
no reason why the processing shouldnt be done on the bus where all of the confusion is.
having a dedicated processor to do that will ease overhead of the main processor.
otherwise the chipset is simply pointing the flow of information left or right.
and i believe that is what makes one motherboard better than another (more specifically, one chipset better than another)
its why a top-end 'gaming' motherboard is faster than a regular consumer board.
the chipset processor is faster.
and thats why it can be hard to overclock the main processor without overclocking the chipset.
once the main processor starts to dump data faster than the chipset can suck it all up.. you have a bottleneck.
and i suppose the chipset isnt capable of receiving all of the data that the processor can dump at every processor cycle.
this doesnt always appear to be a problem when the processor is computing without the need for RAM or access to the hard drive.
that makes onboard processor memory much more important.
and it makes the chipset overclock important so you can transfer data to and from the RAM faster.
its not necessarily about transfering more data.. but doing it faster, which means more data can be calculated within the same time-frame.


anyways..
running the game engine on one processor while using another processor to paint the colors appears to already be in existance.
what do you think the video processor is for?
could be for the game engine.. or it could be dedicated to selecting which color for each pixel.
either way.. getting organized is only going to help.
its better than having one processor do everything.. because that means the processor is gonna be super fast like a super computer.
break it in half and send each half to a different processor.. then you have two processors that need to be hacked for running daily computations before you see a real comparison to a super computer.
 

bhaberle

Distinguished
Nov 15, 2008
288
0
18,780
DX11 is fine. Yes it could be more efficient, but it has done a great job so far. Of course we would all like to see DirectX updates coming out as fast as Google Chrome versions do. =P

Oh and HEY AMD can you please give directx10 and 11 abilities to your older cards? It might just be my lack of knowledge in this department, but I do not see why my 4870x2 can't do DirectX11. I know it wasn't around when my card came out but still.
 
Status
Not open for further replies.