Originally posted by bridgman
View Post
Announcement
Collapse
No announcement yet.
Radeon HD 7000 Series Will Bring New 3D Driver
Collapse
X
-
-
Originally posted by agd5f View Post
There is no references in the this code for any chip >CHIP_CAYMAN.
Comment
-
I thought it would have been obvious from the diagram
Seriously, I understand it's not obvious at all. If you look at the center-left of the diagram you'll see a little "you are here" guy with a few lines going off to the right and upper right. The line going off to the right is the common compiler work for OpenCL and GCN - at the end of that line there's another line going up into OpenCL work and a line going down into GCN work, with the internal name of the GPU family scribbled over in black. Going from memory, the line going up to OpenCL should be making the compiler code work with clover while the line going down to REDACTED should be adding the HW-specific ISA bits.
So... the compiler work is common to GCN and compute/OpenCL support, but the reason for releasing it now was more for people working on compute and that's what most of the mailing list comments talked about. We are not pushing out the GCN-specific HW programming bits yet but we are trying to push out the stack that GCN will use.
In most cases we are using Cayman for testing the stack changes since it is architecturally closest to GCN, however in the specific case of the compiler we want to support everything from Evergreen up since Evergreen is where the main HW features required for efficient OpenCL work arrived.
Clear as mud ?Last edited by bridgman; 11 December 2011, 06:23 PM.Test signature
Comment
-
As mud, yes
Now to summarize...the code Tom pushed is part of a compiler stack for OpenCL/compute. It has <=CHIP_CAYMAN for now, with CHIP_GCN landing after some time.
This will not replace any part of the Graphics pipeline. This code will integrate in mesa and is the back-end with front-end clover state tracker.
What about Graphics for GCN, e.g. graphics shader compiler?
Comment
-
For GCN and up, this code + LLVM will more-or-less replace the shader compiler in r600g; at least that's our current thinking. The compiler will accept either TGSI or LLVM IR depending on whether the graphics or compute state tracker is running.
For graphics, the path will be :
[GLSL] >> (GLSL compiler) >> [glsl ir] >> (GLSL IR to TGSI converter) >> [tgsi] >> (new tgsi to llvm code) >> [llvm ir] >> (new llvm to ISA code) >> [gpu instructions]
..while for compute the path will be :
[OpenCL C99] >> (clover using clang/llvm) >> [llvm ir] >> (new llvm to ISA code) >> [gpu instructions].
Something like that anyways. There are a couple of points in the stack where LLVM runs some optimizing passes on the IR but I don't remember offhand where they are and need to get back to chopping firewood so am not looking at the code right now
square brackets for [data], parentheses for (processing)Last edited by bridgman; 11 December 2011, 07:00 PM.Test signature
Comment
-
Chipping firewood, reallyYou are not living in a cabin in the woods, aren't you
This sounds like a plan. Do you know the work LunarGLASS has made to make LLVM graphics friendly. http://www.lunarg.com/3d-driver-deve...gy/lunarglass/
What do you think?
Comment
-
Originally posted by Drago View PostChipping firewood, reallyYou are not living in a cabin in the woods, aren't you
My friends call it "the cabin" so I guess that makes it official. No TV, but I get deer in the front yard and wild turkeys in the back.
Originally posted by Drago View PostThis sounds like a plan. Do you know the work LunarGLASS has made to make LLVM graphics friendly. http://www.lunarg.com/3d-driver-deve...gy/lunarglass/
What do you think?Last edited by bridgman; 11 December 2011, 07:33 PM.Test signature
Comment
Comment