ComputeSystemCPU.cpp 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Jolt Physics Library (https://github.com/jrouwe/JoltPhysics)
  2. // SPDX-FileCopyrightText: 2026 Jorrit Rouwe
  3. // SPDX-License-Identifier: MIT
  4. #include <Jolt/Jolt.h>
  5. #ifdef JPH_USE_CPU_COMPUTE
  6. #include <Jolt/Compute/CPU/ComputeSystemCPU.h>
  7. #include <Jolt/Compute/CPU/ComputeQueueCPU.h>
  8. #include <Jolt/Compute/CPU/ComputeBufferCPU.h>
  9. JPH_NAMESPACE_BEGIN
  10. ComputeShaderResult ComputeSystemCPU::CreateComputeShader(const char *inName, uint32 inGroupSizeX, uint32 inGroupSizeY, uint32 inGroupSizeZ)
  11. {
  12. ComputeShaderResult result;
  13. const ShaderRegistry::const_iterator it = mShaderRegistry.find(inName);
  14. if (it == mShaderRegistry.end())
  15. {
  16. result.SetError("Compute shader not found");
  17. return result;
  18. }
  19. result.Set(new ComputeShaderCPU(it->second, inGroupSizeX, inGroupSizeY, inGroupSizeZ));
  20. return result;
  21. }
  22. ComputeBufferResult ComputeSystemCPU::CreateComputeBuffer(ComputeBuffer::EType inType, uint64 inSize, uint inStride, const void *inData)
  23. {
  24. ComputeBufferResult result;
  25. result.Set(new ComputeBufferCPU(inType, inSize, inStride, inData));
  26. return result;
  27. }
  28. ComputeQueueResult ComputeSystemCPU::CreateComputeQueue()
  29. {
  30. ComputeQueueResult result;
  31. result.Set(new ComputeQueueCPU());
  32. return result;
  33. }
  34. ComputeSystemResult CreateComputeSystemCPU()
  35. {
  36. ComputeSystemResult result;
  37. result.Set(new ComputeSystemCPU());
  38. return result;
  39. }
  40. JPH_NAMESPACE_END
  41. #endif // JPH_USE_CPU_COMPUTE