23 #ifndef __CLRX_AMDCL2BINGEN_H__ 24 #define __CLRX_AMDCL2BINGEN_H__ 26 #include <CLRX/Config.h> 49 AMDCL2SECTID_SAMPLERINIT = ELFSECTID_OTHER_BUILTIN,
50 AMDCL2SECTID_TEXTRELA,
51 AMDCL2SECTID_RODATARELA,
53 AMDCL2SECTID_MAX = AMDCL2SECTID_NOTE
59 std::vector<AmdKernelArgInput>
args;
138 void addEmptyKernel(
const char* kernelName);
148 void generateInternal(std::ostream* osPtr, std::vector<char>* vPtr,
168 uint32_t archMinor, uint32_t archStepping, uint32_t driverVersion,
169 size_t globalDataSize,
const cxbyte* globalData,
170 size_t rwDataSize,
const cxbyte* rwData,
171 const std::vector<AmdCL2KernelInput>& kernelInputs);
174 uint32_t archMinor, uint32_t archStepping, uint32_t driverVersion,
175 size_t globalDataSize,
const cxbyte* globalData,
176 size_t rwDataSize,
const cxbyte* rwData,
177 std::vector<AmdCL2KernelInput>&& kernelInputs);
191 void generate(std::ostream& os)
const;
194 void generate(std::vector<char>& vector)
const;
main AMD OpenCL2.0 GPU Binary generator
Definition: AmdCL2BinGen.h:142
non copyable and non movable base structure (class)
Definition: Utilities.h:43
uint32_t pgmRSRC1
pgmRSRC1 register value
Definition: AmdCL2BinGen.h:65
bool tgSize
enable tgSize
Definition: AmdCL2BinGen.h:73
bool privilegedMode
prvileged mode
Definition: AmdCL2BinGen.h:75
size_t localSize
used local size (not local defined in kernel arguments)
Definition: AmdCL2BinGen.h:69
uint32_t usedVGPRsNum
number of used VGPRs
Definition: AmdCL2BinGen.h:63
bool dx10Clamp
DX10 CLAMP mode.
Definition: AmdCL2BinGen.h:76
common definitions for binaries
uint32_t dimMask
mask of dimension (bits: 0 - X, 1 - Y, 2 - Z)
Definition: AmdCL2BinGen.h:61
an array class
Definition: Containers.h:38
uint32_t priority
priority
Definition: AmdCL2BinGen.h:68
cxuint RelocType
relocation type
Definition: Commons.h:32
bool ieeeMode
IEEE mode.
Definition: AmdCL2BinGen.h:71
uint32_t scratchBufferSize
size of scratch buffer
Definition: AmdCL2BinGen.h:70
cxbyte exceptions
enabled exception handling
Definition: AmdCL2BinGen.h:72
std::vector< AmdKernelArgInput > args
arguments
Definition: AmdCL2BinGen.h:59
uint32_t reqdWorkGroupSize[3]
reqd_work_group_size
Definition: AmdCL2BinGen.h:62
argument not used
Definition: AmdCL2BinGen.h:42
main namespace
Definition: AsmFormats.h:41
bool useEnqueue
this kernel enqueues other kernel
Definition: AmdCL2BinGen.h:79
uint32_t floatMode
float mode
Definition: AmdCL2BinGen.h:67
argument to read and write
Definition: AmdCL2BinGen.h:45
GPUDeviceType
type of GPU device
Definition: GPUId.h:38
bool debugMode
debug mode
Definition: AmdCL2BinGen.h:74
uint32_t pgmRSRC2
pgmRSRC2 register value
Definition: AmdCL2BinGen.h:66
kernel configuration
Definition: AmdCL2BinGen.h:57
bool useGeneric
use generic pointer addresses (for flat instrs)
Definition: AmdCL2BinGen.h:80
argument to write
Definition: AmdCL2BinGen.h:44
uint32_t usedSGPRsNum
number of used SGPRs
Definition: AmdCL2BinGen.h:64
bool useSetup
use setup buffer (local sizes, global sizes)
Definition: AmdCL2BinGen.h:77
GPU identification utilities.
const AmdCL2Input * getInput() const
get input
Definition: AmdCL2BinGen.h:181
std::vector< cxuint > samplers
defined samplers
Definition: AmdCL2BinGen.h:60
bool useArgs
use argument's buffer
Definition: AmdCL2BinGen.h:78
simple C-string container
Definition: CString.h:38
containers and other utils for other libraries and programs
argument to read
Definition: AmdCL2BinGen.h:43