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

Function newBufferStruct

test_conformance/vectors/structs.cpp:112–155  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

110}
111
112bufferStruct *newBufferStruct(size_t inSize, size_t outSize, clState *pClState)
113{
114 int error;
115 bufferStruct *pResult = (bufferStruct *)malloc(sizeof(bufferStruct));
116#if DEBUG_MEM_ALLOC
117 log_info("malloc bufferStruct * %x\n", pResult);
118#endif
119
120 pResult->m_bufSizeIn = inSize;
121 pResult->m_bufSizeOut = outSize;
122
123 pResult->m_pIn = malloc(inSize);
124 pResult->m_pOut = malloc(outSize);
125#if DEBUG_MEM_ALLOC
126 log_info("malloc m_pIn %x\n", pResult->m_pIn);
127 log_info("malloc m_pOut %x\n", pResult->m_pOut);
128#endif
129
130 pResult->m_inBuffer = clCreateBuffer(pClState->m_context, CL_MEM_READ_ONLY,
131 inSize, NULL, &error);
132 if (pResult->m_inBuffer == NULL)
133 {
134 vlog_error("clCreateArray failed for input (%d)\n", error);
135 return destroyBufferStruct(pResult, pClState);
136 }
137#if DEBUG_MEM_ALLOC
138 log_info("clCreateBuffer %x\n", pResult->m_inBuffer);
139#endif
140
141 pResult->m_outBuffer = clCreateBuffer(
142 pClState->m_context, CL_MEM_WRITE_ONLY, outSize, NULL, &error);
143 if (pResult->m_outBuffer == NULL)
144 {
145 vlog_error("clCreateArray failed for output (%d)\n", error);
146 return destroyBufferStruct(pResult, pClState);
147 }
148#if DEBUG_MEM_ALLOC
149 log_info("clCreateBuffer %x\n", pResult->m_outBuffer);
150#endif
151
152 pResult->m_bufferUploaded = false;
153
154 return pResult;
155}
156
157bufferStruct *destroyBufferStruct(bufferStruct *destroyMe, clState *pClState)
158{

Callers 2

test_vec_internalFunction · 0.85
test_step_internalFunction · 0.85

Calls 1

destroyBufferStructFunction · 0.85

Tested by 2

test_vec_internalFunction · 0.68
test_step_internalFunction · 0.68