MCPcopy Create free account
hub / github.com/KhronosGroup/OpenCL-CTS / test_buffer_kernel

Function test_buffer_kernel

test_conformance/gl/test_buffers.cpp:122–326  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122int test_buffer_kernel(cl_context context, cl_command_queue queue,
123 ExplicitType vecType, size_t vecSize, int numElements,
124 int validate_only, MTdata d)
125{
126 clProgramWrapper program;
127 clKernelWrapper kernel;
128 clMemWrapper streams[3];
129 size_t dataSize = numElements * 16;
130 std::vector<cl_long> inData(dataSize), outDataCL(dataSize),
131 outDataGL(dataSize);
132
133 glBufferWrapper inGLBuffer, outGLBuffer;
134 int i;
135 size_t bufferSize;
136
137 int error;
138 size_t threads[1], localThreads[1];
139 char kernelSource[10240];
140 char *programPtr;
141 char sizeName[4];
142
143 /* Create the source */
144 if (vecSize == 1)
145 sizeName[0] = 0;
146 else
147 sprintf(sizeName, "%d", (int)vecSize);
148
149 sprintf(kernelSource, bufferKernelPattern, get_explicit_type_name(vecType),
150 sizeName, get_explicit_type_name(vecType), sizeName,
151 get_explicit_type_name(vecType), sizeName,
152 get_explicit_type_name(vecType), sizeName,
153 get_explicit_type_name(vecType), sizeName);
154
155 /* Create kernels */
156 programPtr = kernelSource;
157 if (create_single_kernel_helper(context, &program, &kernel, 1,
158 (const char **)&programPtr, "sample_test"))
159 {
160 return -1;
161 }
162
163 bufferSize = numElements * vecSize * get_explicit_type_size(vecType);
164
165 /* Generate some almost-random input data */
166 gen_input_data(vecType, vecSize * numElements, d, inData.data());
167
168 /* Generate some GL buffers to go against */
169 glGenBuffers(1, &inGLBuffer);
170 glGenBuffers(1, &outGLBuffer);
171
172 glBindBuffer(GL_ARRAY_BUFFER, inGLBuffer);
173 glBufferData(GL_ARRAY_BUFFER, bufferSize, inData.data(), GL_STATIC_DRAW);
174
175 // Note: we need to bind the output buffer, even though we don't care about
176 // its values yet, because CL needs it to get the buffer size
177 glBindBuffer(GL_ARRAY_BUFFER, outGLBuffer);
178 glBufferData(GL_ARRAY_BUFFER, bufferSize, outDataGL.data(), GL_STATIC_DRAW);
179

Callers 2

test_buffersFunction · 0.70
test_buffers_getinfoFunction · 0.70

Calls 9

get_explicit_type_nameFunction · 0.85
get_explicit_type_sizeFunction · 0.85
CheckGLObjectInfoFunction · 0.85
GetDataVectorStringFunction · 0.85
gen_input_dataFunction · 0.70
get_incremented_valueFunction · 0.70
resetMethod · 0.45

Tested by

no test coverage detected