mirror of
https://github.com/PixarAnimationStudios/OpenSubdiv
synced 2024-09-19 14:20:00 +00:00
iso-646 fix for CUDA / CL / TBB
This commit is contained in:
parent
3d08e0ac27
commit
3e3695652f
@ -158,10 +158,10 @@ CLDeviceContext::HAS_CL_VERSION_1_1 () {
|
||||
#ifdef OPENSUBDIV_HAS_CLEW
|
||||
static bool clewInitialized = false;
|
||||
static bool clewLoadSuccess;
|
||||
if (not clewInitialized) {
|
||||
if (!clewInitialized) {
|
||||
clewInitialized = true;
|
||||
clewLoadSuccess = clewInit() == CLEW_SUCCESS;
|
||||
if (not clewLoadSuccess) {
|
||||
if (!clewLoadSuccess) {
|
||||
error("Loading OpenCL failed.\n");
|
||||
}
|
||||
}
|
||||
|
@ -63,7 +63,7 @@ static int _GetCudaDeviceForCurrentGLContext()
|
||||
// If we don't have a current GL context, then choose the device which
|
||||
// matches the current X11 screen number.
|
||||
Display * display = glXGetCurrentDisplay();
|
||||
if (not display) {
|
||||
if (!display) {
|
||||
display = XOpenDisplay(NULL);
|
||||
if (display) {
|
||||
int screen = DefaultScreen(display);
|
||||
@ -90,7 +90,7 @@ static int _GetCudaDeviceForCurrentGLContext()
|
||||
int interopDevices[1];
|
||||
cudaError_t status = cudaGLGetDevices(&interopDeviceCount, interopDevices,
|
||||
1, cudaGLDeviceListCurrentFrame);
|
||||
if (status == cudaErrorNoDevice or interopDeviceCount != 1) {
|
||||
if (status == cudaErrorNoDevice || interopDeviceCount != 1) {
|
||||
message("CUDA no interop devices found.\n");
|
||||
return 0;
|
||||
}
|
||||
|
@ -66,31 +66,31 @@ static clEnqueueReleaseD3D11Objects_fn clEnqueueReleaseD3D11Objects = NULL;
|
||||
|
||||
static void resolveInteropFunctions() {
|
||||
|
||||
if (not clCreateFromD3D11Buffer) {
|
||||
if (! clCreateFromD3D11Buffer) {
|
||||
clCreateFromD3D11Buffer =
|
||||
(clCreateFromD3D11Buffer_fn)
|
||||
clGetExtensionFunctionAddress("clCreateFromD3D11BufferKHR");
|
||||
}
|
||||
if (not clCreateFromD3D11Buffer) {
|
||||
if (! clCreateFromD3D11Buffer) {
|
||||
clCreateFromD3D11Buffer =
|
||||
(clCreateFromD3D11Buffer_fn)
|
||||
clGetExtensionFunctionAddress("clCreateFromD3D11BufferNV");
|
||||
}
|
||||
|
||||
if (not clEnqueueAcquireD3D11Objects) {
|
||||
if (! clEnqueueAcquireD3D11Objects) {
|
||||
clEnqueueAcquireD3D11Objects = (clEnqueueAcquireD3D11Objects_fn)
|
||||
clGetExtensionFunctionAddress("clEnqueueAcquireD3D11ObjectsKHR");
|
||||
}
|
||||
if (not clEnqueueAcquireD3D11Objects) {
|
||||
if (! clEnqueueAcquireD3D11Objects) {
|
||||
clEnqueueAcquireD3D11Objects = (clEnqueueAcquireD3D11Objects_fn)
|
||||
clGetExtensionFunctionAddress("clEnqueueAcquireD3D11ObjectsNV");
|
||||
}
|
||||
|
||||
if (not clEnqueueReleaseD3D11Objects) {
|
||||
if (! clEnqueueReleaseD3D11Objects) {
|
||||
clEnqueueReleaseD3D11Objects = (clEnqueueReleaseD3D11Objects_fn)
|
||||
clGetExtensionFunctionAddress("clEnqueueReleaseD3D11ObjectsKHR");
|
||||
}
|
||||
if (not clEnqueueReleaseD3D11Objects) {
|
||||
if (! clEnqueueReleaseD3D11Objects) {
|
||||
clEnqueueReleaseD3D11Objects = (clEnqueueReleaseD3D11Objects_fn)
|
||||
clGetExtensionFunctionAddress("clEnqueueReleaseD3D11ObjectsNV");
|
||||
}
|
||||
@ -178,9 +178,9 @@ CLD3D11VertexBuffer::allocate(cl_context clContext, ID3D11Device *device) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (not clCreateFromD3D11Buffer) {
|
||||
if (! clCreateFromD3D11Buffer) {
|
||||
resolveInteropFunctions();
|
||||
if (not clCreateFromD3D11Buffer) {
|
||||
if (! clCreateFromD3D11Buffer) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@ -200,9 +200,9 @@ CLD3D11VertexBuffer::map(cl_command_queue queue) {
|
||||
if (_clMapped) return;
|
||||
_clQueue = queue;
|
||||
|
||||
if (not clEnqueueAcquireD3D11Objects) {
|
||||
if (! clEnqueueAcquireD3D11Objects) {
|
||||
resolveInteropFunctions();
|
||||
if (not clEnqueueAcquireD3D11Objects) {
|
||||
if (! clEnqueueAcquireD3D11Objects) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -214,10 +214,10 @@ CLD3D11VertexBuffer::map(cl_command_queue queue) {
|
||||
void
|
||||
CLD3D11VertexBuffer::unmap() {
|
||||
|
||||
if (not _clMapped) return;
|
||||
if (not clEnqueueReleaseD3D11Objects) {
|
||||
if (! _clMapped) return;
|
||||
if (! clEnqueueReleaseD3D11Objects) {
|
||||
resolveInteropFunctions();
|
||||
if (not clEnqueueReleaseD3D11Objects) {
|
||||
if (! clEnqueueReleaseD3D11Objects) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
@ -138,7 +138,7 @@ CLGLVertexBuffer::map(cl_command_queue queue) {
|
||||
void
|
||||
CLGLVertexBuffer::unmap() {
|
||||
|
||||
if (not _clMapped) return;
|
||||
if (! _clMapped) return;
|
||||
clEnqueueReleaseGLObjects(_clQueue, 1, &_clMemory, 0, 0, 0);
|
||||
_clMapped = false;
|
||||
}
|
||||
|
@ -443,7 +443,7 @@ void CudaEvalStencils(
|
||||
const int * sizes, const int * offsets, const int * indices,
|
||||
const float * weights,
|
||||
int start, int end) {
|
||||
if (length == 0 or srcStride == 0 or dstStride == 0 or (end <= start)) {
|
||||
if (length == 0 || srcStride == 0 || dstStride == 0 || (end <= start)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ static inline void
|
||||
addWithWeight(float *dst, const float *src, int srcIndex, float weight,
|
||||
BufferDescriptor const &desc) {
|
||||
|
||||
assert(src and dst);
|
||||
assert(src && dst);
|
||||
src = elementAtIndex(src, srcIndex, desc);
|
||||
for (int k = 0; k < desc.length; ++k) {
|
||||
dst[k] += src[k] * weight;
|
||||
@ -63,7 +63,7 @@ static inline void
|
||||
copy(float *dst, int dstIndex, const float *src,
|
||||
BufferDescriptor const &desc) {
|
||||
|
||||
assert(src and dst);
|
||||
assert(src && dst);
|
||||
|
||||
dst = elementAtIndex(dst, dstIndex, desc);
|
||||
memcpy(dst, src, desc.length*sizeof(float));
|
||||
|
@ -27,7 +27,7 @@
|
||||
|
||||
#if defined(__APPLE__)
|
||||
#include "TargetConditionals.h"
|
||||
#if TARGET_OS_IPHONE or TARGET_IPHONE_SIMULATOR
|
||||
#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
|
||||
#include <OpenGLES/ES2/gl.h>
|
||||
#else
|
||||
#if defined(OSD_USES_GLEW)
|
||||
|
@ -56,7 +56,7 @@ static inline void
|
||||
addWithWeight(float *dst, const float *src, int srcIndex, float weight,
|
||||
BufferDescriptor const &desc) {
|
||||
|
||||
assert(src and dst);
|
||||
assert(src && dst);
|
||||
src = elementAtIndex(src, srcIndex, desc);
|
||||
for (int k = 0; k < desc.length; ++k) {
|
||||
dst[k] += src[k] * weight;
|
||||
@ -67,7 +67,7 @@ static inline void
|
||||
copy(float *dst, int dstIndex, const float *src,
|
||||
BufferDescriptor const &desc) {
|
||||
|
||||
assert(src and dst);
|
||||
assert(src && dst);
|
||||
|
||||
dst = elementAtIndex(dst, dstIndex, desc);
|
||||
memcpy(dst, src, desc.length*sizeof(float));
|
||||
@ -115,14 +115,14 @@ public:
|
||||
void operator() (tbb::blocked_range<int> const &r) const {
|
||||
#define USE_SIMD
|
||||
#ifdef USE_SIMD
|
||||
if (_srcDesc.length==4 and _srcDesc.stride==4 and _dstDesc.stride==4) {
|
||||
if (_srcDesc.length==4 && _srcDesc.stride==4 && _dstDesc.stride==4) {
|
||||
|
||||
// SIMD fast path for aligned primvar data (4 floats)
|
||||
int offset = _offsets[r.begin()];
|
||||
ComputeStencilKernel<4>(_vertexSrc, _vertexDst,
|
||||
_sizes, _indices+offset, _weights+offset, r.begin(), r.end());
|
||||
|
||||
} else if (_srcDesc.length==8 and _srcDesc.stride==4 and _dstDesc.stride==4) {
|
||||
} else if (_srcDesc.length==8 && _srcDesc.stride==4 && _dstDesc.stride==4) {
|
||||
|
||||
// SIMD fast path for aligned primvar data (8 floats)
|
||||
int offset = _offsets[r.begin()];
|
||||
|
Loading…
Reference in New Issue
Block a user