compute best axis on host and OpenCL for 1-axis SAP, based on best variance
This commit is contained in:
38
src/Bullet3OpenCL/ParallelPrimitives/b3PrefixScanFloat4CL.h
Normal file
38
src/Bullet3OpenCL/ParallelPrimitives/b3PrefixScanFloat4CL.h
Normal file
@@ -0,0 +1,38 @@
|
||||
|
||||
#ifndef B3_PREFIX_SCAN_CL_H
|
||||
#define B3_PREFIX_SCAN_CL_H
|
||||
|
||||
#include "b3OpenCLArray.h"
|
||||
#include "b3BufferInfoCL.h"
|
||||
#include "Bullet3Common/b3AlignedObjectArray.h"
|
||||
#include "Bullet3Common/b3Vector3.h"
|
||||
|
||||
class b3PrefixScanFloat4CL
|
||||
{
|
||||
enum
|
||||
{
|
||||
BLOCK_SIZE = 128
|
||||
};
|
||||
|
||||
// Option m_option;
|
||||
|
||||
cl_command_queue m_commandQueue;
|
||||
|
||||
cl_kernel m_localScanKernel;
|
||||
cl_kernel m_blockSumKernel;
|
||||
cl_kernel m_propagationKernel;
|
||||
|
||||
b3OpenCLArray<b3Vector3>* m_workBuffer;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
b3PrefixScanFloat4CL(cl_context ctx, cl_device_id device, cl_command_queue queue,int size=0);
|
||||
|
||||
virtual ~b3PrefixScanFloat4CL();
|
||||
|
||||
void execute(b3OpenCLArray<b3Vector3>& src, b3OpenCLArray<b3Vector3>& dst, int n, b3Vector3* sum = 0);
|
||||
void executeHost(b3AlignedObjectArray<b3Vector3>& src, b3AlignedObjectArray<b3Vector3>& dst, int n, b3Vector3* sum);
|
||||
};
|
||||
|
||||
#endif //B3_PREFIX_SCAN_CL_H
|
||||
Reference in New Issue
Block a user