Recep Aslantas
Recep Aslantas
Hi, I have noticed that there are several functions that seem to be implemented in a right-handed (**RH**) or NegatifZero-One (**ZO**) context only. Some of them: - Quat to martix...
We can use builtin compiler vectorization ( e.g. `__builtin_shufflevector` ... ) helpers ( if available ) as fallback of SIMD to native ( if possible ): https://gcc.gnu.org/onlinedocs/gcc/Vector-Extensions.html https://clang.llvm.org/docs/LanguageExtensions.html#langext-builtin-shufflevector
https://d3cw3dd2w32x2b.cloudfront.net/wp-content/uploads/2015/01/matrix-to-quat.pdf which is implemented at HandmadeMath as: https://github.com/HandmadeMath/HandmadeMath/commit/78e6feea82836fe85769c00676fba119875e8f06 this may give better performance if it gives same results... Any feedbacks would be awesome
Design
Currently APIs are individual call Maybe we can also provide structs to reduce func calls for instance ```C GPUSetFrontFace(rce, GPUWindingCounterClockwise); GPUSetCullMode(rce, GPUCullModeBack); GPUSetRenderState(rce, renderState); GPUSetDepthStencil(rce, depthStencilState); GPUSetVertexBuffer(rce, dynamicUniformBuffer, uniformBufferOffset, BufferIndexUniforms);...
- [WIP] More SIMD optimizations - Matrix invert - Non-Square matrices - Transforms - AABB - Frustum - simd for int types - ... - [x] Fix compiling on MSVC...