23 #ifndef __CLRX_AMDBINGEN_H__ 24 #define __CLRX_AMDBINGEN_H__ 73 size_t constSpaceSize = 0, uint32_t resId =
BINGEN_DEFAULT,
bool used =
true)
108 std::vector<AmdKernelArgInput>
args;
111 uint32_t reqdWorkGroupSize[3];
181 void addKernel(
const char* kernelName,
size_t codeSize,
const cxbyte* code,
183 const cxbyte* data =
nullptr);
196 void addKernel(
const char* kernelName,
size_t codeSize,
const cxbyte* code,
197 const std::vector<CALNoteInput>& calNotes,
const cxbyte* header,
198 size_t metadataSize,
const char* metadata,
199 size_t dataSize = 0,
const cxbyte* data =
nullptr);
202 void addEmptyKernel(
const char* kernelName);
212 void generateInternal(std::ostream* osPtr, std::vector<char>* vPtr,
229 size_t globalDataSize,
const cxbyte* globalData,
230 const std::vector<AmdKernelInput>& kernelInputs);
233 size_t globalDataSize,
const cxbyte* globalData,
234 std::vector<AmdKernelInput>&& kernelInputs);
242 void setInput(
const AmdInput* input);
248 void generate(std::ostream& os)
const;
251 void generate(std::vector<char>& vector)
const;
uint32_t condOut
CALNOTE_CONDOUT value.
Definition: AmdBinGen.h:125
non copyable and non movable base structure (class)
Definition: Utilities.h:46
uint32_t constBufferId
constant buffer id
Definition: AmdBinGen.h:121
uint32_t scratchBufferSize
size of scratch buffer
Definition: AmdBinGen.h:118
KernelPtrSpace
kernel pointer type of argument
Definition: AmdBinaries.h:103
uint32_t printfId
UAV ID for printf.
Definition: AmdBinGen.h:122
uint32_t detectAmdDriverVersion()
detect driver version in the system
uint32_t dataClass
type of data
Definition: AmdBinGen.h:99
uint32_t uavPrivate
uav private size
Definition: AmdBinGen.h:119
bool usePrintf
if kernel uses printf function
Definition: AmdBinGen.h:129
uint32_t privateId
private id (???)
Definition: AmdBinGen.h:123
bool tgSize
enable tgSize
Definition: AmdBinGen.h:128
uint32_t usedVGPRsNum
number of used VGPRs
Definition: AmdBinGen.h:112
an array class
Definition: Containers.h:41
bool useConstantData
if const data required
Definition: AmdBinGen.h:130
uint32_t regStart
number of beginning SGPR register
Definition: AmdBinGen.h:101
bool ieeeMode
IEEE mode.
Definition: AmdBinGen.h:126
no special flags
Definition: AmdBinaries.h:114
kernel configuration
Definition: AmdBinGen.h:106
uint32_t earlyExit
CALNOTE_EARLYEXIT value.
Definition: AmdBinGen.h:124
user data for in CAL PROGINFO
Definition: AmdBinGen.h:97
size_t hwLocalSize
used local size (not local defined in kernel arguments)
Definition: AmdBinGen.h:116
read only image
Definition: AmdBinaries.h:115
KernelArgType
kernel argument type
Definition: AmdBinaries.h:72
uint32_t floatMode
float mode
Definition: AmdBinGen.h:115
unsigned char cxbyte
unsigned byte
Definition: Config.h:229
main namespace
Definition: AsmDefs.h:38
unsigned int cxuint
unsigned int
Definition: Config.h:237
uint32_t hwRegion
hwRegion ????
Definition: AmdBinGen.h:117
std::vector< AmdKernelArgInput > args
arguments
Definition: AmdBinGen.h:108
uint32_t dimMask
mask of dimension (bits: 0 - X, 1 - Y, 2 - Z)
Definition: AmdBinGen.h:110
GPUDeviceType
type of GPU device
Definition: GPUId.h:51
uint32_t uavId
uavid, first uavid for kernel argument minus 1
Definition: AmdBinGen.h:120
cxbyte exceptions
enabled exception handling
Definition: AmdBinGen.h:127
std::vector< AmdUserData > userDatas
user datas
Definition: AmdBinGen.h:131
uint32_t usedSGPRsNum
number of used SGPRs
Definition: AmdBinGen.h:113
GPU identification utilities.
uint32_t regSize
number of used SGPRS registers
Definition: AmdBinGen.h:102
uint32_t pgmRSRC2
pgmRSRC2 register value
Definition: AmdBinGen.h:114
uint32_t apiSlot
slot
Definition: AmdBinGen.h:100
const AmdInput * getInput() const
get input
Definition: AmdBinGen.h:238
main AMD GPU Binary generator
Definition: AmdBinGen.h:206
std::vector< cxuint > samplers
defined samplers
Definition: AmdBinGen.h:109
if set in field then field has been filled later
Definition: ElfBinaries.h:50
simple C-string container
Definition: CString.h:38
containers and other utils for other libraries and programs
pointer to constant memory