Skip to content

Commit

Permalink
PR IntelRealSense#12637 from Arun-Prasad-V: [LRS-GL] Support for Alig…
Browse files Browse the repository at this point in the history
…n-SSE
  • Loading branch information
Nir-Az authored Feb 14, 2024
2 parents 0d4a185 + cd165d5 commit b6f4aed
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 26 deletions.
2 changes: 1 addition & 1 deletion src/gl/rs-gl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ rs2_processing_block* rs2_gl_create_align(int api_version, rs2_stream to, rs2_er
{
verify_version_compatibility(api_version);
auto block = std::make_shared<librealsense::gl::align_gl>(to);
auto backup = std::make_shared<librealsense::align>(to);
auto backup = align::create_align(to);
auto dual = std::make_shared<librealsense::gl::dual_processing_block>();
dual->add(block);
dual->add(backup);
Expand Down
17 changes: 17 additions & 0 deletions src/proc/align.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,27 @@
#include "align.h"
#include "stream.h"

#if defined(RS2_USE_CUDA)
#include "proc/cuda/cuda-align.h"
#elif defined(__SSSE3__)
#include "proc/sse/sse-align.h"
#endif

namespace librealsense
{
template<int N> struct bytes { uint8_t b[N]; };

std::shared_ptr<align> align::create_align(rs2_stream align_to)
{
#if defined(RS2_USE_CUDA)
return std::make_shared<librealsense::align_cuda>(align_to);
#elif defined(__SSSE3__)
return std::make_shared<librealsense::align_sse>(align_to);
#else
return std::make_shared<librealsense::align>(align_to);
#endif
}

template<class GET_DEPTH, class TRANSFER_PIXEL>
void align_images(const rs2_intrinsics& depth_intrin, const rs2_extrinsics& depth_to_other,
const rs2_intrinsics& other_intrin, GET_DEPTH get_depth, TRANSFER_PIXEL transfer_pixel)
Expand Down
1 change: 1 addition & 0 deletions src/proc/align.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ namespace librealsense
{
public:
align(rs2_stream to_stream);
static std::shared_ptr<align> create_align(rs2_stream align_to);

protected:
align(rs2_stream to_stream, const char* name)
Expand Down
22 changes: 0 additions & 22 deletions src/proc/processing-blocks-factory.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,32 +3,10 @@

#include "processing-blocks-factory.h"

#include "sse/sse-align.h"
#include "cuda/cuda-align.h"

#include "stream.h"

namespace librealsense
{
#ifdef RS2_USE_CUDA
std::shared_ptr<librealsense::align> create_align(rs2_stream align_to)
{
return std::make_shared<librealsense::align_cuda>(align_to);
}
#else
#ifdef __SSSE3__
std::shared_ptr<librealsense::align> create_align(rs2_stream align_to)
{
return std::make_shared<librealsense::align_sse>(align_to);
}
#else // No optimizations
std::shared_ptr<librealsense::align> create_align(rs2_stream align_to)
{
return std::make_shared<librealsense::align>(align_to);
}
#endif // __SSSE3__
#endif // RS2_USE_CUDA

processing_block_factory::processing_block_factory(const std::vector<stream_profile>& from, const std::vector<stream_profile>& to, std::function<std::shared_ptr<processing_block>(void)> generate_func) :
_source_info(from), _target_info(to), generate_processing_block(generate_func)
{}
Expand Down
2 changes: 0 additions & 2 deletions src/proc/processing-blocks-factory.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,12 @@

#include <vector>

#include "align.h"
#include "../types.h"

#include "identity-processing-block.h"

namespace librealsense
{
std::shared_ptr<librealsense::align> create_align(rs2_stream align_to);

class processing_block_factory
{
Expand Down
3 changes: 2 additions & 1 deletion src/rs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
#include "proc/processing-blocks-factory.h"
#include "proc/colorizer.h"
#include "proc/pointcloud.h"
#include "proc/align.h"
#include "proc/threshold.h"
#include "proc/units-transform.h"
#include "proc/disparity-transform.h"
Expand Down Expand Up @@ -2536,7 +2537,7 @@ rs2_processing_block* rs2_create_align(rs2_stream align_to, rs2_error** error) B
{
VALIDATE_ENUM(align_to);

auto block = create_align(align_to);
auto block = align::create_align(align_to);

return new rs2_processing_block{ block };
}
Expand Down

0 comments on commit b6f4aed

Please sign in to comment.