OSDN Git Service

radeonsi: initial WIP SI code
[android-x86/external-mesa.git] / src / gallium / drivers / radeon / AMDILSIDevice.h
1 //===------- AMDILSIDevice.h - Define SI Device for AMDIL -*- C++ -*------===//\r
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //==-----------------------------------------------------------------------===//\r
9 //\r
10 // Interface for the subtarget data classes.\r
11 //\r
12 //===---------------------------------------------------------------------===//\r
13 // This file will define the interface that each generation needs to\r
14 // implement in order to correctly answer queries on the capabilities of the\r
15 // specific hardware.\r
16 //===---------------------------------------------------------------------===//\r
17 #ifndef _AMDILSIDEVICE_H_\r
18 #define _AMDILSIDEVICE_H_\r
19 #include "AMDILEvergreenDevice.h"\r
20 #include "AMDILSubtarget.h"\r
21
22 namespace llvm {\r
23   class AMDILSubtarget;\r
24 //===---------------------------------------------------------------------===//\r
25 // SI generation of devices and their respective sub classes\r
26 //===---------------------------------------------------------------------===//\r
27 \r
28 // The AMDILSIDevice is the base class for all Northern Island series of\r
29 // cards. It is very similiar to the AMDILEvergreenDevice, with the major\r
30 // exception being differences in wavefront size and hardware capabilities.  The\r
31 // SI devices are all 64 wide wavefronts and also add support for signed 24 bit\r
32 // integer operations\r
33 \r
34   class AMDILSIDevice : public AMDILEvergreenDevice {\r
35     public:\r
36       AMDILSIDevice(AMDILSubtarget*);\r
37       virtual ~AMDILSIDevice();\r
38       virtual size_t getMaxLDSSize() const;\r
39       virtual uint32_t getGeneration() const;\r
40       virtual std::string getDataLayout() const;\r
41     protected:\r
42   }; // AMDILSIDevice\r
43 \r
44 } // namespace llvm\r
45 #endif // _AMDILSIDEVICE_H_\r