Git Product home page Git Product logo

Comments (4)

redorav avatar redorav commented on August 28, 2024

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.

devshgraphicsprogramming avatar devshgraphicsprogramming commented on August 28, 2024

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.

redorav avatar redorav commented on August 28, 2024

Hi @devshgraphicsprogramming,

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.

devshgraphicsprogramming avatar devshgraphicsprogramming commented on August 28, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.