Comments (4)
Hi @CUSkidmore it is always my plan to expand hlsl++ beyond its capabilities and make it as useful as possible. It isn't a priority right now as it's a big chunk of work, and there are several considerations such as SSE/AVX implementation. I'll leave it here in case there is more demand or even if you want to tackle it. As a matter of curiosity, what application would you use them for?
from hlslpp.
Hi @CUSkidmore it is always my plan to expand hlsl++ beyond its capabilities and make it as useful as possible. It isn't a priority right now as it's a big chunk of work, and there are several considerations such as SSE/AVX implementation. I'll leave it here in case there is more demand or even if you want to tackle it. As a matter of curiosity, what application would you use them for?
I can only talk for myself, but I'm doing CAD rendering with HLSL.
If I want to use the same functions to work with view matrices and similar in shaders and on CPU, then it would be important.
I myself don't really care about SSE vs AVX implementation, you could give me a simple transpose and FMA matrix-vector done in terms of double8
and leave optimization as a TODO.
I guess we as the users of something whose goal is to be compatible with HLSL syntax are not looking for ultimate performance but maintainability offerred by code-sharing between C++ and HLSL
from hlslpp.
I can only talk for myself, but I'm doing CAD rendering with HLSL.
I can see there can be a use case for this, so thanks for commenting.
I myself don't really care about SSE vs AVX implementation,
I guess we as the users of something whose goal is to be compatible with HLSL syntax are not looking for ultimate performance but maintainability offerred by code-sharing between C++ and HLSL
This library's main target is SIMD-style computation, such as SSE and AVX, which I think is clear from the repository decription. Scalar implementations are there for compatibility. Were I to implement this I would go the fully featured route, not a halfway solution. I understand that as a user you may not need it but I personally use this library in my own projects and have to maintain it.
you could give me a simple transpose and FMA matrix-vector.
I should be able to implement the beginnings of a double matrix with this in mind and prioritize your needs, which as you said are multiplying by vectors and transposing. That might not be a lot of work considering that double vectors already exist in the codebase. Also bear in mind I do this outside work, if you need this urgently you could consider submitting a patch or something that would speed it up.
from hlslpp.
which as you said are multiplying by vectors and transposing
I was refering to "turn row major into columns and do matrix-vector mult as FMA" as a particular strategy.
My main use case is just matrix<4,4,double>
and double<4>
usage (adding, multiplying with each other and themselves) followed by a bit of double<3>
.
Also bear in mind I do this outside work, if you need this urgently you could consider submitting a patch or something that would speed it up.
We will try and use it in our engine https://github.com/devshgraphicsprogramming/Nabla and if we feel like we can get 90% of the functionality then we'll submit patches for the remaining 10%.
We've already done this to SPIRV-Cross, shaderc/glslang, and DXC.
from hlslpp.
Related Issues (20)
- Integer vector division is working incorrectly on Macs with Apple M1 (ARM) HOT 7
- Integer vector comparison is working incorrectly on Intel based Macs with MacOS >= 11 HOT 3
- Improve HLSL++ unit tests by using full-featured testing framework HOT 2
- Matrix accessor operator HOT 6
- operator / (float1, float3) looks inverted HOT 8
- How well does this cover HLSL202x? HOT 11
- * operator brake mult function in quaternion HOT 7
- Quaternion slerp returning nan values HOT 2
- Clang error: unused variable 't4' in hlsl++_quaternion.h HOT 6
- Upgrade warnings to errors HOT 2
- round() on ARM Neon uses wrong rounding mode HOT 2
- mul() intrinsic is missing some overloads. HOT 2
- clamp() intrinsic is missing overloads for intN HOT 1
- Some non square matrix definitions are incorrect HOT 6
- Missing matrix constructors HOT 2
- Some vector double functions missing HOT 5
- Undefined behavior when accessing vector elements with operator[] HOT 10
- internal::round_float gives incorrect results HOT 4
- Build failure on G++13.2 HOT 11
- Errors on building Linux ARM64 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hlslpp.